Friday 6 February 2009

Fluent NHibernate and Collections Mapping

You can find some bits and pieces about mapping collections with NHibernate in many different places but yet I decided to write another post about it. What is different about my post? I hope to gather here all (in one place) relevant information regarding the most common mappings: many-to-one/one-to-many and many-to-many. In my examples I'm useing Fluent NHibernate API but also XML counterpart are included. All examples are based on the following schema: (subset of AdventureWorks database)


Bidirectional many-to-one/one-to-many

This is the most common type of association, I have used Product and ProductReview tables to depict how it works and how it can be mapped.

In our case each product (one) can have multiple reviews (many). On ProductReview side association can be mapped like this:

   References(x => x.Product, "ProductID").FetchType.Join();
which is equal to:

   <many-to-one fetch="join" name="Product" column="ProductID" />
What is FetchType doing? Basically FetchType can be Select or Join, we can define how we want NHibernate to load product for us, consider this code:

   1:  var review = session.Get<ProductReview>("1");
   2:  var productName = review.Product.Name;    

For FetchType.Join() NHibernate will call database once with following query:

   SELECT ... FROM ProductReview pr left outer join Product p on pr.ProductID=p.ProductID WHERE ... 
As you can see review and product are loaded with one call. For FetchType.Select() we will get two calls:

   SELECT ... FROM ProductReview pr WHERE ... 
   SELECT ... FROM Product p WHERE ... 
Second call will be executed on demand, it means, only if we try to use Product object like in above example: var productName = review.Product.Name;

In general you have to determine in each case which FetchType is more beneficial for you.

Now, lets check Product side, this is many side of one-to-many association so Product has a collection of reviews, I have chosen to use ISet:

   1:  HasMany(x => x.ProductReview)
   2:      .KeyColumnNames.Add("ProductID")
   3:      .AsSet()
   4:      .Inverse()
   5:      .Cascade.All();
corresponding XML mapping:

   1:      <set name="ProductReview" inverse="true" cascade="all">
   2:        <key column="ProductID" />
   3:        <one-to-many class="AdventureWorksPlayground.Domain.Production.ProductReview, AdventureWorksPlayground, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
   4:      </set>
Here you can find two confusing things:
  • inverse="true" - it tells NHibernate that other side of this association is a parent. I know that it sounds other way round but that's how it is. ProductReview table has foreign key (and ProductID column) therefore ProductReview controls the association.
    What are the implications? In above example review.Product has to be set correctly, as this the property which NHibernate will check to figure our what product is associated with the review. It will ignore collection of reviews on product!
  • cascade="all" - it tells NHibernate that all events (like save, update, delete) should be propagated down. Calling session.SaveOrUpdate(product) will save (or update) the product itself but also the same event will be applied to all depending objects.
We are almost ready to move to many-to-many associations, but before we do that, check this piece of code:

   1:  var product = new Product
   2:                    {
   3:                        Name = "Bike",
   4:                        SellStartDate = DateTime.Today
   5:                    };
   6:  
   7:  product.ProductReview.Add(new ProductReview
   8:                                {
   9:                                    Product = product,
  10:                                    Rating = 4,
  11:                                    ReviewerName = "Bob",
  12:                                    ReviewDate = DateTime.Today
  13:                                });
  14:  
  15:  product.ProductReview.Add(new ProductReview
  16:                                {
  17:                                    Product = product,
  18:                                    Rating = 2,
  19:                                    ReviewerName = "John",
  20:                                    ReviewDate = DateTime.Today
  21:                                });
  22:  
  23:  
  24:  session.SaveOrUpdate(product);

Can you see a potential problem here? Each ProductReview knows about its Product, and thanks to cascade="all" everything is configured correctly but still you may end up with just one review in database ... why? I'm using ISet here, so it guarantees that I have only unique objects in the collection. Most of the people know that NHibernate classes should have Equals() and GetHashCode() methods overridden. It is useful when you want to check that two objects represent the same row in a database. People use primary id column in Equals() implementation, primary id is unique so it fits perfectly isn't it? It does if primary key is defined, and in above example, objects are saved in a last line, before that, they don't have any primary id. That is a reason for using different data to determine equality.

Bidirectional many-to-many association

For this association I have used Product, ProductProductPhoto (link) and ProductPhoto tables. Each product can have multiple photos, but each photo can also be associated with multiple products. ProductProductPhoto is just a link table and doesn't have any representation as a separate class. On both sides mapping looks very similarly.

Product side:

   1:  HasManyToMany(x => x.Photos)
   2:      .AsBag()
   3:      .WithTableName("Production.ProductProductPhoto")
   4:      .WithParentKeyColumn("ProductID")
   5:      .WithChildKeyColumn("ProductPhotoID")
   6:      .Cascade.All();
which produces XML like this:

   1:  <bag name="Photos" cascade="all" table="Production.ProductProductPhoto">
   2:        <key column="ProductID" />
   3:        <many-to-many column="ProductPhotoID" class="AdventureWorksPlayground.Domain.Production.ProductPhoto, AdventureWorksPlayground, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
   4:  </bag>
and ProductPhoto side:

   1:  HasManyToMany(x => x.Products)
   2:      .AsBag()
   3:      .WithTableName("Production.ProductProductPhoto")
   4:      .WithParentKeyColumn("ProductPhotoID")
   5:      .WithChildKeyColumn("ProductID")
   6:      .Inverse();
XML:

   1:  <bag name="Products" inverse="true" table="Production.ProductProductPhoto">
   2:        <key column="ProductPhotoID" />
   3:        <many-to-many column="ProductID" class="AdventureWorksPlayground.Domain.Production.Product, AdventureWorksPlayground, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
   4:  </bag>
In efect Product has a collection of Photos (IList<ProductPhoto> Photos) and ProductPhoto has a collection of products. It's mandatory, in cases like this, to mark one side as inverse="true".

This is fairly straightforward example but unfortunately not very common. In typical case link table has some additional data (like ProductDocument which has ModifiedDate column) and those additional data forces us to use different approach. Among NHibernate best practices you can find general guideline:

Good usecases for a real many-to-many associations are rare. Most of the time you need additional information stored in the "link table". In this case, it is much better to use two one-to-many associations to an intermediate link class. In fact, we think that most associations are one-to-many and many-to-one, you should be careful when using any other association style and ask yourself if it is really necessary.
So, in fact, for tables Product, Document and ProductDocument, we have to create three classes and three mappings. Both Product and Document have a link to each other through ProductDocument object. Interesting part is ProductDocument which has composite primary id (two columns) which can be mapped in a following way:

   1:      public class ProductDocumentMap : ClassMap<ProductDocument>
   2:      {
   3:          public ProductDocumentMap()
   4:          {
   5:              UseCompositeId()
   6:                  .WithKeyReference(x => x.Product, "ProductID")
   7:                  .WithKeyReference(x => x.Document, "DocumentID");
   8:  
   9:              Map(x => x.ModifiedDate).Not.Nullable();
  10:          }
  11:      }
and it generates XML like this:

   1:    <class name="ProductDocument" table="Production.ProductDocument" xmlns="urn:nhibernate-mapping-2.2">
   2:      <composite-id>
   3:        <key-many-to-one class="AdventureWorksPlayground.Domain.Production.Product, AdventureWorksPlayground, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="Product" column="ProductID" />
   4:        <key-many-to-one class="AdventureWorksPlayground.Domain.Production.Document, AdventureWorksPlayground, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="Document" column="DocumentID" />
   5:      </composite-id>
   6:      <property name="ModifiedDate" column="ModifiedDate" not-null="true" type="DateTime">
   7:        <column name="ModifiedDate" />
   8:      </property>
   9:    </class>
Then we can write code like this:

   1:      var product = CreateNewProduct();
   2:      var photo1 = CreateNewPhoto();
   3:      var photo2 = CreateNewPhoto();
   4:  
   5:      product.Photos.Add(photo1);
   6:      product.Photos.Add(photo2);
   7:  
   8:      // we don't have to save photos because of Cascade.SaveUpdate()
   9:      // INSERT INTO [Production.Product]
  10:      // INSERT INTO [Production.ProductPhoto]
  11:      // INSERT INTO [Production.ProductPhoto]
  12:      // INSERT INTO [Production.ProductProductPhoto]
  13:      // INSERT INTO [Production.ProductProductPhoto]
  14:      session.SaveOrUpdate(product);
And that is all what I think is important in this subject ... anything missing? Leave a comment and I will try to add missing parts.

Related posts

191 comments:

Unknown said...

Hello,I got one question.
Assuming that the tables keep intact, but if a product can have many photos,a photo can be only belong to a product,the how to map product and photo?

Dariusz said...

Great post Marek!

Anonymous said...

Great post I've been following Fluent NHibernate for a while but have been working on other parts of my project and haven't gotten around to doing collection mappings using this for reference should make it very easy to understand which mapping is correct.

Having your schema at the top of this post made it alot more understandable, most posts I've seen on this topic tend to leave the schemas out of it.

Blotko said...

@Darek and @dotnetchris

Thanks a lot for positive feedback!

@Yoyo

If I understand correctly your question then without changing tables you can't really switch to many(photos)-to-one(product).

Anonymous said...

Hi,
Sorry for my obscure comment.I just got 5 tables in one of my project,which are Posts,Products, Comments,and other two linked tables CommentToPost(CommentID,PostID) plus CommentToProduct(CommentID,ProductID).
A Post(or a Product) can have many Comments,while a Comment belongs to only one Post(or a Product).
How to map these 5 tables using FL?

Blotko said...

@mamboer

If a single comment belongs to only one product then there is no point in having link table. You should remove link table and add a foreign key to Comments table. Then it will be simple one-to-many association.

On Comment side you can have:
References(x => x.Product, "ProductID")

and on Product side:
HasMany(x => x.Comments)
.WithKeyColumn("ProductID")
.AsSet()
.Inverse()
.Cascade.All();

Hope that it helps :)

Anonymous said...

Hi,maybe you mistake my intention here.I have a few objects which are commentable,Post's comment and Product's comment e.g.,both have the same data structure,that's why i need link table and treat Comment as an independent business object.

As in your case,things go well in the case of domain design,but it isn't so good when go to DB design.

Best regards and respect for your further points.

Anonymous said...

Additional remarks:
Many commentable business objects have the SAME comment data structure ,
1,Posts(PostID,Title,Content,...)
2,Products(ProductID,Name,Desc,...)
3,Album(AlbumID,Title,...)
...
...
Typically we have two kinds of DB designs,
1,Comment dependent,no link table
PostComment(CommentID,PostID,Title,Content,...)
ProductComment(CommentID,ProductID,Title,Content,...)
AlbumComment(CommentID,AlbumID,Title,Content,...)
2,Comment independent,having link table
Comment(CommentID,Title,Content,...)
PostComment(CommentID,PostID)
ProductComment(CommentID,ProductID)
...
Obviously,option two does a better job in the DB world.

Blotko said...

@mamboer
I see your point now ... it's a tricky question :)

Comment is a separate table, and will be represented a as separate object, that's certain. But single comment can reference Product or Post and that is a problem here.

I think the easiest way will be to have Product (and Post) object that will use unidirectional many-to-many association though link table to the Comment table. So comments will be available as a collection for those objects but comment itself won't have a link back.

How does it sound?

Anonymous said...

ha ha,it sounds good:)
which is how i map this situation currently.

Do u know CSLA.NET?
I run a framework leveraging CSLA.NET with Nhibernate on google code,i'm looking for people who wanna do contributions.HAVE a look if you are interested.

Here goes the link:
http://code.google.com/p/cslarepo/

Anonymous said...

I would love to see your complete fluent mappings somewhere ? Can you post them or just post an url ?

Blotko said...

Hi Christoffer ... here is my test project, you should find mappings there.

Anonymous said...

Hi,i got an strange issue on M2M relationship mapping.
Let's say we have 3 domain objects:
1,User
2,UserRole(A link class)
3,Role

I added two roles to a user,but can't remove them through the user's navigation property LinkToRoles(of type IList< UserRole >),it always throw an error "a different object with the same identifier value was already associated with the session".

You can check my unit test on:
http://code.google.com/p/mamboer/source/browse/trunk/src/Samples/Vivasky/Vivasky.Tests/Data/UserRepositoryTests.cs,the Can_Delete_Role() test method.

Can you share me your opinion?

Anonymous said...

Hi, I've got a question. I try to do my example exactly the same as yours but it doesn't work. I've four tables: Client (id), Agent (id), Function(id) and AgentClients (client_id, agent_id, function_id). Could you write how to do mapping to this examaple. Thanks in advance :)

Dejan.S said...

Creat post. i got stuck at work with a new project that involves alot of relations and this is just what i needed.

Thanks Marek

Dejan.S said...

how does your mappings look for product and document?

how does the domain look for product, document and productdocument? im kinda confused with what should have IList for what and do i have 2 IList in productdocument domain?

hope im not to confusing with my questions. maby it should be eaziest way if you could post your mappings and domain so i could take a look :)

thx in advance

Blotko said...

@Topflysecurity

Here you can find all source files:
http://marekblotny.googlepages.com/AdventureWorksPlayground.collections.zip

ProductDocument links document and product so it knows only about single product and single document. Product and Document have a collection of links (IList<ProductDocument>).

Cheers, Marek

Dejan.S said...

Thx for the Code Marek

i looked at it but when i use it for my model it wont work. do i need to use the overrides in all classes? i didnt really get that. i get errors in mapping. this is often

Could not determine type for: Phaeton.Core.Domain.Receiver, Phaeton.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null, for columns: NHibernate.Mapping.Column(ReceiverID).

i asume you are buizy so i will not post any code but if you feel u got a little time over just let me know :)

Anonymous said...

Can u send me a sample of how to convert stored procedures having left/outer joins , nested querries , udfs to equilavent fulent n hibernate code . All the examples given are simple scenarios but i need to have a sample of a complicated scenario . thanks

Steve Gentile said...

Thank you - especially for the sample as well.

Very well done. I was struggling with the many to many composite part of it and your sample helped me through it.

Blotko said...

@Steve Gentile: thanks for the praise, I'm glad that it helped you :)

Abel Braaksma said...

Nice post! but... I was actually hoping to also find something on one-to-one relationships. I know you can create them as one-to-many but then the one-and-one-only check is gone, and I know how to create them through the HBM config, but how would you do it using Fluent NHibernate with Auto Mapping?

Sorry if this is off-topic.

-- Abel --

kdani said...
This comment has been removed by the author.
kdani said...

Hi, thid post is good, but version 1.0 holds some changes and it would be nice if the post will be addapted.

concerning the many to many example, what if I don't what the ProductPhoto Object to hold a list of products ?

(I just want the product to hold the list of it's photos) - would it be possible to map it without having the prodcutphoto class a Product member ?

SPere said...

Hi, Great post! from never working on Fluent NHibernate, I can now build quiet simple mappings by using this post and the FAQ on NHibernate website.

I was hoping you could extend you last example to show how one could go about updating "ModifiedDate" column in "ProductProductPhoto" table?

SPere said...

oops! ...

I was hoping you could extend you last example to show how one could go about updating "ModifiedDate" column in "ProductDocument" table?

Unknown said...

Sorry, realise this post is getting old, but how would you go about mapping something like User -> UserForumRole -> Forum, where UserForumRole is many to many but also contains a (property / column) denoting the role the user has for the forum? I'm thinking the many to many table would need to exist as an entity with a user property, a forum property and a role enum.

Thanks...

Anonymous said...

The sample he gives is correct for
User -> UserForumRole -> Forum

Just follow his Product -> ProductProductPhoto -> ProductPhoto Sample.

Read his stuff twice, as it's a bit confusing.

One thing to note: With the latest version of fluent, I had to remove the
.WithTableName(etc
or in the current version
.Table(etc
to get it to build the database correctly.
It kept trying to create the many-to-many table twice on me.

Jalal El-Shaer said...

Just wanna thank you ... searched and found your helpful article

Unknown said...

Very clear article, it was helped me a lot. Thank you very much

Unknown said...

What about if there's only PKs in ProductProductPhoto and a relatioship with QualityPhoto. One ProductProductPhoto has many QualityPhoto.

1) Do you need mapping ProductProductPhoto or put HasManyToMany in Product and ProductPhoto?
2) How is the mapping of QualityPhoto?

I have this situation in a legacy database that I couldn't even mapping ProductProductPhoto.

Could you help me?

Day to Day English said...

Very useful post. I would love however to see it updated to the latest version of Fluent

jQuery with ASP.NET said...

Yep, update to the latest version would be great. This post is now out-of-date, at least in terms of source code.

Shahzad Ali said...
This comment has been removed by the author.
Shahzad Ali said...

Can u please give any complete example about extra column in link table


Good usecases for a real many-to-many associations are rare. Most of the time you need additional information stored in the "link table". In this case, it is much better to use two one-to-many associations to an intermediate link class. In fact, we think that most associations are one-to-many and many-to-one, you should be careful when using any other association style and ask yourself if it is really necessary.
So, in fact, for tables Product, Document and ProductDocument, we have to create three classes and three mappings. Both Product and Document have a link to each other through ProductDocument object. Interesting part is ProductDocument which has composite primary id (two columns) which can be mapped in a following way:

Anonymous said...

Hi Everyone
Can some one please give me a fluent example of how to deal with this scenario:

CommentsTable(id,for,by,text,date and more properties....)

Given that: comments could be for product, employee, toilets of that company.

A linking table for each entity, like
product-comments(pid,cid,expDate)
employee-comments(eid,cid,expDate)

Domain model
myComment[expDate,Comment]

product=>myComments as IList
employee=>myComments as IList

Now: I how do i map this one, with myComment mapped as resusable component.

Thanks
Guru

Anonymous said...

May Be This is more clear scenario

class Person
{
public int Id;
public string Name;
public IList Addresses;
}

class Employee:Person
{
public int Salary;
}

class Supplier:Person
{
public string PhoneNumber;
}

class OneAddress
{
public int Id;
public DateTime LastUsed;
public Address Address;
}

class Address
{
public int Id;
public string Street;
public string City;
}

/*
* Linking Tables
* Employee-Address[empId,addressId,lastUsed]
* Supplier-Address[supId,addressId,lastUsed]
*/

Anonymous said...

Really good post! Thank you :)

Anonymous said...

Thanks for this nice explanation!

Aissa said...

Nice post.Thank you for taking the time to publish this information very informative! So happy to be given a privilege to post a comment here.

aissa
www.joeydavila.net

joy said...

I am so happy to stop by your site and read something very interesting. I hope that you could inspire more people with your great artwork and will leave joy to their faces. Visit my site too for a fun experience so don't miss it.

n8fan.net

www.n8fan.net

Mobile app Development company said...

Very Informative blog, Thank you for this Information.

Aadhya Sharma said...

Thanks for sharing the interesting information, the article is very interesting to read and may be useful for everything. Visit for:
web development company in noida

Anonymous said...

lucky patcher 2019 apk download

Mobile App Development in Noida said...

Thanks for the article may be useful for everything

Mobile App Development in Delhi said...

I want to say that this post is awesome, nice written.

Online Marketing Company said...

Thanks for sharing this information. Zehar Global Services is One Of the Best Designing and Development Copmany in Noida.
Mobile App Development
Graphic Design
Digital marketing
Web Development

annexorientechnology said...

Thank you so much for such a wonderful blog. I’m really thankful to you for this informative…..

kenwoodk03 said...

صيانات علي اعيل متسوي الان من الكفائه الان وبافضل مستوي الان توكيل كينوود من الدقه من خلال افضل مهندسين الان في الصيانات و بافضل كفائه الان و دقه في الصيانات و التركيب توكيل جونكر و علي اعلي مستوي تواصلو معنا الان

Unknown said...

الان نوفر اليكم الان افضل الصيانات و علي اعلي صيانة يونيون اير مستوي الان من التميز و بافضل الكفائه الان في اعمال الصيانة و باقل الاسعار و افضل الخصومات الان و بافضل فريق عمل في اعمال صيانة ال جي التركيب و الصيانة المنزليه تواصلو معنا الان

tecnogasm said...

مع صيانة بلاك اند ديكر يمكنكم الأن الحصول علي جميع قطع الغيار الأصلية بأقل الأسعار و بضمان لعدد من السنوات تواصل الأن مع خدمة عملاء تكنوجاز لطلب خدمة الدعم الفني المنزلي بأقل الأسعار ولا تتوقف عن زياره موقعنا لو كنت ترغب في الحصول علي أفضل العروض و الخدمات

Unknown said...
This comment has been removed by the author.
universalmaintenanceg said...

تمتع الان بافضل صيانات من خلال بتوفير افضل متخصصين خدمة عملاء يونيفرسال في مجالات الصيانات حيث يتم الصيانة علي اعلي مستوي من الاحترافيه و الادقان و بافضل خدمة عملاء جليم جاز مستوي من الكفائه تواصلو معنا الان من خلال موقعنا او من خلال خدمة العملاء الخاصه خدمة عملاء فريجيدير بنا و احصل علي افضل خدمات الصيانة

TRAINING IN GREATER NOIDA said...

Thanks for sharing such a great information with us. Your Post is very unique and all information is reliable for new readers.
Keep it up in future, thanks for sharing such a useful post.
Python training program is most important for the students in education. It is the popular programming language for education software.
Python is the primary programming language.The students who need to get more knowledge about this language must go for the training.


Python Training In Greater Noida
Python Coaching in Greater Noida
Python Course in Greater Noida

Rahul said...

Thnx For Sharing A valuable Opnion, Thnx For A Sharing Ur Services,I am Very Glad Read Your Services. If u Want To leading manufacturers of plastic pallets in the field. You can select the best product from the wide collection in our online portal. We are supplying high quality of pallets products to customers at affordable cost. From our online portal,



Plastic Pllates Manufactures

TRAINING IN GREATER NOIDA said...

Thanks for sharing such a great information with us. Your Post is very unique and all information is reliable for new readers.
Keep it up in future, thanks for sharing such a useful post.
C/C++ Training is particularly basic to anyone who needs to be a programmer.
Regardless of whether you want to enhance your insight in specific zones or searching for a course to upgrade your skills in coding,
joining a C/C++ Training in Greater Noida can without a doubt help.

C++ Coaching in Greater Noida
C Coaching in Greater Noida
C/C++ Training in Greater Noida
C/C++ Classes in Greater Noida

TRAINING IN GREATER NOIDA said...

Thanks for sharing such a great information with us. Your Post is very unique and all information is reliable for new readers.
Keep it up in future, thanks for sharing such a useful post.
Java has become more popular and is widely used as compared to other programming languages like Python, C/C++, C#, PHP and so on.
Many people often ask why it is so important to learn Java Programming. Well, if it’s your concern too, the solution is simple. To know further,
kindly take a look at below info

Java Classes in Greater noida
Java Training Institute in Greater Noida
Java course in Greater Noida
Java Training in Greater Noida

TRAINING IN GREATER NOIDA said...

Thanks for sharing such a great information with us. Your Post is very unique and all information is reliable for new readers.
Keep it up in future, thanks for sharing such a useful post.
The extent of digital marketing is expanding significantly. On account of the Digital Marketing course in Greater Noida.
More vocation decisions and greater pay are only two of the numerous advantages that digital marketing experts have in
store when they finish the Digital Marketing course in Greater Noida.

Digital Marketing Institute in Greater Noida
Digital Marketing Training In Greater Noida
Digital Marketing Course in Greater Noida

TRAINING IN GREATER NOIDA said...

Thanks for sharing such a great information with us. Your Post is very unique and all information is reliable for new readers.
Keep it up in future, thanks for sharing such a useful post.
In case you are hoping to upgrade your insight in Search Engine Optimization (SEO), book in the SEO training in Greater Noida course.
Search engine optimization training courses will give all the moment points of interest, beginning from building connects to an objective site

SEO Coaching in Greater Noida
SEO Classes in Greater Noida
SEO Training in Greater Noida

anuj4533 said...

I am very glad to see this post. It is very interesting and informative. Such a nice post, i am very thankful and i like this post. Also i would like to share one thing which is an institute for learning programming languages, which is the most demanding now a day. For that, you can join at this link

Pythan Training in Greater Noida
Pythan coaching in Greater Noida
Pythan institute in Greater Noida
Pythan classes in Greater Noida


TRAINING IN GREATER NOIDA said...

Thanks for sharing such a great information with us. Your Post is very unique and all information is reliable for new readers.
Keep it up in future, thanks for sharing such a useful post.
DAA Coaching in Greater Noida to improve your skill in the data structure. They offer Data Structure Classes with theory and practical classes.
The institute has designed for the training class that depends on the preferences of candidate and needs of industry.

DAA Course in Greater Noida
DAA Coaching in Greater Noida
DAA Classes in Greater Noida

TRAINING IN GREATER NOIDA said...

Thanks for sharing such a great information with us. Your Post is very unique and all information is reliable for new readers.
Keep it up in future, thanks for sharing such a useful post.
DAA Coaching in Greater Noida to improve your skill in the data structure. They offer Data Structure Classes with theory and practical classes.
The institute has designed for the training class that depends on the preferences of candidate and needs of industry.

DAA Course in Greater Noida
DAA Coaching in Greater Noida
DAA Classes in Greater Noida

TRAINING IN GREATER NOIDA said...

Thanks for sharing such a great information with us. Your Post is very unique and all information is reliable for new readers.
Keep it up in future, thanks for sharing such a useful post.
you can learn an operating system course.
It is one of the famous courses that helps you to get a good job in the IT sector. The OS training program helps to develop the drivers
of the device in the pc platforms and embedded platforms. If you want to study the Operating System Coaching in Greater Noida then
you can select the top coaching center. The reputed institute provides the best training to the students.

Operating System Classes in Greater Noida
Operating System Course in Greater Noida
Operating System Coaching in Greater Noida

Anonymous said...

Thanks for sharing valuable Information, I really very impressive on your blog. I hope you continue on blogging job. Python course in Noida is where you can learn how to set up campaigns, generate and analyze personalized reports.

Python Training In Noida
Python Coaching In Noida
Python Classes In Noida
Best Python Training Institute In Noida

Vivek said...

I am thankful to you that you Are sharing such valuable inforation, having read your Blog I am so impressed I hope you will be continue on blogging job. here data science training in greter noida is essential for professionals and students looking for a career as a data scientist.
Data Science Training In Greater Noida
Data Science Training In Greater Noida
Data Science Training In Greater Noida
Data Science Training In Greater Noida

Kapil Sharma said...

I am exceptionally happy to see this post. It is fascinating and enlightening. Such a pleasant post, I am grateful and I like this post. Likewise I might want to share one thing which is an establishment for learning Digital Marketing, which is the most requesting now daily. For that, you can join at this connection
Digital Marketing Training in Noida
Digital Marketing coaching in Noida
Digital Marketing institute in Noida
Digital Marketing classes in Noida


Kapil Sharma said...

Much obliged for sharing significant Information, I actually quite great on your blog. I trust you proceed on blogging work.
English Spoken Training in Noida
English Spoken coaching in Noida
English Spoken institute in Noida
English Spoken classes in Noida

Vivek said...

I would say to you thanks that you are shareing such a valuable information with

us, I Am very glad to read your blog I am so impressed I hope you will be continue

on blogging job. here you can learn in SEO new techniques or tricks, to acquire new

approaches or just another point of view, is to do a SEO Positioning course.

SEO

Training In Greater Noida

SEO

Training Institute In Greater Noida

SEO

Classes In Greater Noida

SEO

Course In Greater Noida

Vivek said...

Haveing seen your blog i am very happy thanks for shareing such valuable

information keep continue this blogging job, here you can learn C language C is the

precursor and inspirer for almost all the most popular high-level languages

available today.

C Language Training In Greater Noida
C Language Training Institute In Greater Noida
C Language Course In Greater Noida
C Language Tranning In Greater Noida

Vivek said...

Thangs for shareing this Blog I am very happy to see this such a valuable

information, you are doing good job keep continue on Blogging job here you can do

C++ Training in Greater Noida at Mirorsoft Technologies It can be used for low-

level programming, such as writing scripts for drivers and kernels, and also

supports high-level programming language functions, such as writing scripts for

software applications, etc.
C++ Language Training In Greater Noida
C++ Language Training Institute In Greater Noida
C++ Language Course In Greater Noida
C++ Language Classes In Greater Noida

aj said...

Snapdeal here came up with an Offer where you can win special Snapdeal prize by just playing a game & win prizes Call @6289576795
Snapdeal prize
Prize Snapdeal
Snapdeal winner List
Lucky Draw Snapdeal
Snapdeal winner List 2019
snapdeal lucky customer

Talktoastro said...


Thanks for sharing valuable Information, I really very impressive on your blog. I hope you continue on blogging job. TalktoAstro is a leading astrology prediction platform. Here you can talk to India’s best astrologers, tarot reader, Vastu experts or numerologists over call or order report with just Rs 100. Our mission is to provide exceptional services at a minimum cost. Get predictions related to love, marriage, career or finance from the comfort of your home with full privacy from Talktoastro experts.



astrologer online

free talk to astrologer

astrologist online

best online astrology consultation

online astrologist

talk to astrologer free

Amit Kumar Singh said...
This comment has been removed by the author.
Free Career Guide said...

Nice Post thanks for the information, good information & very helpful for others. For more information about Online Shopping Lucky Winner, Flipkart,

HomeShop18, Shopping Lucky, Draw, Contest, Winner, Prize, Result, 2018 - 2019 Click Here to Read More

Anonymous said...

Thanks for sharing this informative content Really I appreciate your work | Web design company in Hyderabad

BULK SMS PLANS said...

Very Nice article ! great job. Thanks for sharing.
Promote your business brands with bulk SMS marketing, contact us at +917404900081
Bulk SMS Service provider in UAE
Bulk SMS Service provider in U.S.
Bulk SMS Service provider in U.K.
Bulk sms Service provider in India

Bulk sms service provider in Australia
Bulk sms service provider in Indonesia
Bulk sms service provider in Canada
Bulk sms Service provider in Kuwait

Online Shopping Lucky Draw Winner said...

https://www.onlineshoppingluckywinner.com/
Comment: Nice Post thanks for the information, good information & very helpful for others. flipkart lucky draw For more information about Online Shopping Lucky Winner, Flipkart, HomeShop18, Shopping Lucky, Draw, Contest, Winner, Prize, Result, 2018 - 2019 flipkart lucky draw, Homeshop18 lucky draw, Snapdeal lucky draw Winner, Shopcluse lucky draw


flipkart lucky draw, Homeshop18 lucky draw, Snapdeal lucky draw Winner, Shopcluse lucky draw


Atal Pension Yojana, APY, Digitize India Platform, DIGITAL INDIA PLATFORM, Apna CSC Online Registration, CSC Apply


Mobile Number Tracker, career counselling, career counselling online, online career counselling free, online counseling,

Online Shopping Lucky Draw Winner said...
This comment has been removed by the author.
Vikas_Sharma said...


Good article! I found some useful educational information in your blog, it was awesome to read, thanks for sharing this great content to my vision

best java training institute in Greater Noida.


Java courses in Greater Noida.


java institute in Greater Noida.


java training institute in Greater Noida.

swotter tech said...

Very nice post and I got very useful information

website designing company in chennai
digital marketing company in chennai

ac serwing said...

Nice article! I got some very useful Educational information in your blog
thank you

ac service in chennai
ac service chennai
ac service

صيانة said...

نوفير اليكم الان من خلال موقعنا افضل الصيانات المتيمزه صيانة كلفينيتور الخاصه بالاجهزه الكهربائيه و بافضل تميز صيانة امبريال الان من موقعنا و بتوفير افضل الاساليب و الوسائل المتيمزه من موقعنا في الصينات و بافضل تميز الان تواصلو معنا الان و احصل عيل افضل الصيانات

Tech Learn said...

Thanks for sharing valuable Information. It's really very impressive. Your Post is very unique and all information is reliable for new readers. I hope you continue on blogging job for your readers. Python is a simple and easy to learn programming language. Python is considered great for deployment automation and web development, but many non-developers are first introduced to the Python language and its ecosystem when doing data work. We offers you the best training in greater noida and also provide certificates after the successful completion of course.
Python classes in Greater Noida
Python coaching Greater Noida
Python training in Greater Noida
Python course in Greater Noida

Arabian Oud said...

الان يقدم موقع العربية للعود افخم انواع العطور من خلال كود خصم العربية عود للعود تمتع باكبر نسبة تخفيض

CRM Software in Mumbai said...

You have a real ability for writing unique content. I like how you think and the way you represent your views in this article.

web trenz technologies said...

Thank you for sharing this information.

The Beno Technologies said...

Top Digital Marketing Agency in india, we provide customize DM service that give you sales and brand. Our company is expertise in SEO, PPC, SMO, ORM.To Know more visit here https://www.wecareatbeno.com

Get SEO Info said...

We provide a complete list of high domain authority Sites For Classifieds, Article, Blog, Business Listings, Social Bookmarking, Press Release, Video, PPT , Image sharing.
Classifieds Submission Sites in India
Classifieds Submission Sites in USA
Classifieds Submission Sites in UK
free classified websites without registration
business listing sites in india
instant approval directory submission sites list
image submission site
social bookmarking sites list
ppt submission site list
profile creation sites

Java Coaching In Greater Noida said...

Thank you for sharing your ideas. This blog post is very infortic and helpful for me . I have this content thank you
java traning in greater noida

java coaching in greater noida

java classes in greater noida

java traning institute in greater noida

Unknown said...

Thanks for sharing your ideas. keep more updates
web design
digital marketing services

5g protect shield said...

Thank you for sharing your idea

5g protect shield said...

Nice blog, Thank you for sharing this blog.

infotech Zone 93 said...

Top Rated, Leading Finance Assessment Company in Eugeneinment in Eugene, Lane County, Oregon

CSK Dynamic Ventures LLC in Eugene, Oregon

Contact CSK Dynamic Ventures LLC in Eugene, Oregon

Business ventures in oregon

Finance Venture Company in oregon





Infotech Zone - Best Web Design, Best Web Development, Best Digital Marketing Company in Ludhiana, Punjab

Top Rated Best Graphic Designing, Best Web Design, Best Web Development and Best Digital Marketing Company in Ludhiana, Punjab

Top Rated SEO, SMO, Web Design and Digital Marketing Company in Ludhiana, PunjabInfotech Zone - Best Web Design, Best Web Development, Best Digital Marketing Company in Ludhiana, Punjab

Thermal paper company in bangalore said...

Your Post is very nice and useful. Thanks for sharing Keep updating us.
we are the best thermal paper company in Bangalore

digitaleyecon said...

Thanks for posting this information | https://www.digitaleyecon.com

CRM Software in Mumbai said...

You have a real ability for writing unique content. I like how you think and the way you represent your views in this article.

Anonymous said...

I read fully this blog. It is very clean and beautiful written.

THanks & Regards
FillipTechnologies

Techiesys said...

Great info.

seo companies in bangalore
seo experts in bangalore

Mr Rahman said...

Really Great Post & Thanks for sharing.

Oflox Is The Best Website Designer Dehradun or Website Developer Dehradun

Sam said...

https://www.financialnews.today

snk creation said...

we are growing instagram marketing agency in india and offer

Buy Cheap Real Instagram Followers India

Buy Instagram Followers India Paytm

Contact Us on WhatsApp +917821025722

Anonymous said...

Nice information.

best digital marketing institutes in Bangalore
best orthopedic hospital in Bangalore
best 2d animation company in Bangalore
best 3d animation companies in Bangalore
dofollow instant approval blog commenting sites list
Best meta tag generator tool for blogger
the amp - best seo friendly amp blogger template

Solitarian Group said...

Le Solitairian is a conglomerate of highly—committed professionals operating in the fields of real infrastructure, construction and manufacturing.





Infra Solitarian Group

digitaleyecon said...

Thanks for sharing the comprehensive post, your post having informative&valuable content,it will be helpfull. |
Touch Screen Application Software Development in India

AdFilmMakers said...

Thanks for sharing the comprehensive post, your post having informative&valuable content,it will be helpfull. |
Ad Agencies in Hyderabad

Fuel Digital Marketing said...

thanks for sharing your article.As the most reputed website designers in Chennai, our work is always elegant & has a visual story to it. Our team comprises the best website designers in India.

Best Digital Marketing Agency in Chennai
Digital marketing companies in chennai
Best Content Marketing companies in Chennai
Best SEO Services in Chennai

Unknown said...

management h pylori
management h&s regs
capital h management
b&h management
h partners management

Aditi Gupta said...

Thanks for sharing the comprehensive post, your post having informative&valuable content, Such a helpful information. We are offer provided to real and active followers.
Buy instagram followers Mumbai enjoy your day :) More details to contact us. +917339876756

digitaleyecon said...


Thanks for sharing the comprehensive post, your post having informative&valuable content,it will be helpfull. |
Web Development Company in Hyderabad

AdFilmMakers said...

Thanks for sharing the comprehensive post, your post having informative&valuable content,it will be helpfull. |
Branding Agency in hyderabad

Buy instagram followers India said...

Thanks for sharing good blog post. India best award winning site to Buy Real Instagram Followers Paytm and Paypal from us,
increase social media visibility and real targeted audience...Buy instagram followers India

Anonymous said...

"Thanks for sharing this information.
Biharapps is the best website design agency and mobile app development company in Patna, Bihar. Top andoid app developers and iOS app developers, web designers in Patna and Software development company in Patna, Bihar. We are website designer in patna "

rohit aggarwal said...

good one keep it up

Đồ gia dụng said...

Lưới chống muỗi là thiết bị chống muỗi hiện nay được khá nhiều người lựa chọn hiện nay trong việc ngăn ngừa côn trùng xâm nhập. Có khá nhiều người băn khoăn, lưới chống muỗi có ngăn được bụi không khi chưa sử dụng thiết bị này. Nếu đây cũng là thông tin bạn đang quan tâm. Hãy tham khảo bài viết dưới đây cùng cửa lưới Hoàng Minh nhé:
Lưới chống muỗi có ngăn được bụi không

Đồ gia dụng said...

https://www.ohay.tv/view/mua-may-tinh-ban-nhung-dieu-can-luu-y/jOYDuTnvQL
https://maytinhdeban.hatenablog.com/entry/2020/09/01/171155?_ga=2.92378328.471105878.1598947922-517807338.1598947922
https://medium.com/p/e759807b81c4/edit

digitaleyecon said...

Thanks for sharing the comprehensive post, your post having informative&valuable content,it will be helpfull. |
Web Designing Company in Hyderabad

Đồ gia dụng said...

Ngay này nhu cầu giải trí bằng công nghệ thông tin ngày càng trở nên phổ biến. Người cao tuổi cũng không phải là ngoại lệ. Tuy nhiên với người cao tuổi thì sự nhanh nhạy về công nghệ sẽ không thể như lớp trẻ. Chúng ta cần phải lựa chọn chiếc máy tính để bàn phù hợp. Vậy với người cao tuổi thì nên chọn những chiếc máy tính để bàn như thế nào? Trong thông tin bài viết này chúng tôi sẽ chia sẻ tới bạn cách chọn máy tính để bàn cho người lớn tuổi. Không chần chừ nữa, chúng ta cùng tham khảo một vài thông tin dưới đây nhé:
Cách chọn máy tính để bàn cho người lớn tuổi

Buồn thế said...

Những chia sẻ của bạn hết sức tuyệt vời

cửa lưới dạng xếp

cửa lưới chống muỗi

lưới chống chuột

cửa lưới chống muỗi hà nội

Admin said...

Nice information.
Mysmartodisha
Hindi Me jankari
Odia Dictionary
Odisha Govt Jobs

Đồ gia dụng said...

http://www.catloc.vn/threads/115762-loi-thuong-gap-o-may-tinh-de-ban-va-meo-khac-phuc.html#post149083
http://penetron.vn/threads/158015-nhung-loi-co-ban-o-may-tinh-de-ban-va-meo-khac-phuc.html#post159414
http://pcwebgames.net/threads/127771-Mot-so-loi-pho-bien-o-may-tinh-de-ban-va-cach-khac-phuc.html#post506187
http://phimbomtan.edu.vn/threads/96314-Ban-co-biet-may-tinh-de-ban-thuong-gap-nhung-loi-gi-va-khac-phuc-ra-sao.html#post119001
http://tours.bpsc.vn/threads/117261-may-tinh-de-ban-thuong-gap-nhung-loi-gi.html
http://pcwebgames.net/threads/127771-Mot-so-loi-pho-bien-o-may-tinh-de-ban-va-cach-khac-phuc.html#post506187
http://vangnutrang.com.vn/threads/155747-loi-thuong-gap-tren-may-tinh-de-ban-va-cach-khac-phuc.html#post155947
http://www.vtld.com.vn/threads/243577-Loi-thuong-gap-o-may-tinh-de-ban-va-cach-khac-phuc.html#post244750

Fashion bloggers in India said...

I would Like to Really Appreciated All your wonderful works for making this Blogs...Looking Towards More on this... Fashion bloggers in India

BiharApps - Best Mobile App development company in Patna, Bihar. Website development company and software development company in Patna, Bihar said...

Thanks for sharing this information.
Biharapps is the best digital marketing agency and mobile app development company in Melbourne, Sydney, Perth, Brisbane, Adelaide, Australia. Top website development company in Australia and SEO company in Australia.

Joe said...

School erp
school software
school management
online class
virtual classroom
virtual software
virtual learning

Top mobile app development company | IOS app development said...

Mobile Apps have now become a basic necessity for every business today, be it a small or big. mTouch Labs helps you to create your idea into reality by our professional mobile app developers. mTouch labs is one of the leading mobile app development services in hyderabad. We are providing mobile application development services in Hyderabad throughout India. mTouch Labs is a leading web and android mobile app development company in hyderabad that offers an open-source platform and cost-effective.

AdFilmMakers said...

Thanks for sharing the comprehensive post, your post having informative&valuable content,it will be helpfull.| Advertising Agency in Hyderabad

International Health Care said...

Thanks for sharing the comprehensive post, your post having informative&valuable content,it will be helpfull. |
Animal healthcare products Manufacturers in India

International Health Care said...

Thanks for sharing the comprehensive post, your post having informative&valuable content,it will be helpfull. |
Animal pharmaceutical companies in Vijayawada

Apptians said...
This comment has been removed by the author.
Apptians said...

"Thanks for sharing this information.Apptians is thebest app development company in delhi and App development in Faridabad,India.
Best iOS App Development Company in Delhi and iOS app development company in Faridabad, Indiabest ios app development company in Gurgaon Haryana and ios app development company in NoidaUttar Pradesh, India."

Lautrop and Uhre Aps Fine Jewellery said...

About Lautrop & Uhre which is best Jewellery Designer for unique, handmade and personalized jewelry

Saadrch Digital Software Pvt Ltd said...

Thank you so much for sharing impressive contain. Saadrch Digital Software is the best SEO services in Patna. We offer 360-degree Digital Marketing services like SEO, PPC, SMO, ORM & Design Development.

Emarketing Empire - Digital Marketing Agency | Best Digital Marketing Services | SEO India said...

Superb explanation & it's too clear to understand the concept as well, keep sharing admin with some updated information

with right examples. Keep update more posts. Nice Article! Thanks for sharing such amazing information.
SEO Company
Digital Marketing Service
Digital Marketing company in Delhi

easycareshop.com said...

Xanax belongs to the benzodiazepines drug, which is using to address anxiety, panic disorder, and stress by stimulating the disturbed and unbalanced chemicals in the brain. Xanax offers calming effects in the brain to enhance the productivity evaluator's consultation and guidelines. Buy Xanax online

buy xanax online

easycareshop.com said...

Oxycontin may be a brand of Oxycodone, this is often the controlled-release Oxycodone tablets, intended to be taken every 12 hours. Oxycodone may be a semi-synthetic opioid synthesized from thebaine, an opioid alkaloid found in the Persian poppy, and one among the various alkaloids found within the Papaver somniferous. buy oxycontin online

buy oxycodone online

easycareshop.com said...

Oxycontin may be a brand of Oxycodone, this is often the controlled-release Oxycodone tablets, intended to be taken every 12 hours. Oxycodone may be a semi-synthetic opioid synthesized from thebaine, an opioid alkaloid found in the Persian poppy, and one among the various alkaloids found within the Papaver somniferous. buy oxycontin online

buy oxycontin online

easycareshop.com said...

Norco may be a powerful prescription pain drug that comprises an opioid (narcotic) that’s utilized to regulate pain severe sufficient to wish an opioid analgesic, while other pain therapies like non-opioid ache medicines don’t manage your illness well adequately, otherwise you cannot bear them. Buy Norco online

buy norco online

AlanBarlow said...

Thanks for sharing.
buy logo online

Personal Investigations said...

This is one of the best blog. I really enjoy your blog also i bookmarked your blog because i found some new stuff on your site. It is very useful and informative for me. Thank you for sharing the valuable article. Great work. Keep it up!! Personal Investigations

Best Forex Education said...

Nice Blog. Thanks for sharing informative article with us.Best Forex Education

Shubham Aneja said...

I have been a keen follower of your blog.
Recently I came across this topic and after reading the whole post I am amazed that how well you have written it.
Thanks for sharing this valuable information.

Solitairian city Review

Solitairian city Complaints

St Johns Wood Estate Agent said...

You have a wonderful site. Thank you for the efforts to publish this. Great work. Keep it up!! St Johns Wood Estate Agent

Anonymous said...

Top 1 web development company in hyderabad Offering Professional Website Designing for Personal, Business & Ecommerce websites with SEO Optimization. Experienced web designing company with expertise in latest web trends.

Freelancer Neel said...

Beneficial article for beginners. I am a beginner too, so these all tips help me a lot thanks for sharing. Also great with all of the valuable Infographic Submission Sitesinformation you have. Keep up the excellent work you are doing well.
thank you

pingku roy said...


thanks you very much updated information.I believe that people and not solely technology is imperative in instilling forward-thinking, sustainable business development.
product submit

Online Astrology Consultation said...

Thanks for the article, very well written and informative. Also want to share information regarding Online Astrology Consultation . At astrosalah you will get all astrology solutions at one platform. You will not regret it.

Biharapps - Best Mobile App development and IOS Development company in UAE said...

Thanks for sharing this information.
Biharapps is the best website design agency and mobile app development company in Dubai, UAE. Top andoid app developers and iOS app developers , web designers in Dubai, UAE and Software development company in Dubai, UAE. We are Digital Marketing Agency and SEO Company in UAE.

Freelancer Neel said...

Hello!
Beneficial article for beginners. SEO on Instagram I am a beginner too, so these all tips help me a lot thanks for sharing. It’s helpful for this blog

Rashi Ratna Consultant Shweta Singh Ji said...

Thanks for the article, very well written and informative. Also want to share information regarding Rashi Ratna Consultant Shweta Singh Ji . At Astrosalah She provide you consultation regarding which gemstone suits you and procedure to wear gemstones.

Global Trade Plaza said...

Thank you for sharing this information, I have Bookmarked this and waiting for more to read,
Global Trade Plaza is the Best B2B Marketplace in India, We are the Top Leading B2B Marketplace Portal having Top Leads of verified Buyers, Suppliers, and Manufacturers,

Tasif said...

Great post. I was once checking constantly this weblog and I'm impressed! Extremely useful information specially the closing part. I maintain such information much. I was once seeking this specific information for a very long time. Many thanks and best of luck.
Product Submission Sites

Brisk Logic said...

Brisk logic is the best web development company in mohali .

Freelancer Neel said...

Beneficial article for beginners. ranking factors
I am a beginner too, so these all tips help me a lot thanks for sharing. Also great with all of the valuable information you have. Keep up the excellent work you are doing well.

Ravi Varma said...

ning
We offer the Best SEO Training in Hyderabad with advanced topics that can help you get a job easily on SEO in Digital marketing which has plenty of job openings.

SEO Live Projects
We at Digital Brolly offer SEO Live Projects as it’s important that you practice all that you learn in SEO. Our SEO training is practice-oriented and provides SEO Live Projects.
100% Placement Assistance
Making you ready for the job is our priority. Our Mock interviews and special job oriented sessions will help you crack the job easily. Join our SEO Training in Hyderabad for 100% placement assistance.

Anonymous said...

Are you searching for private limited company registration in Dhaka, Bangladesh? Legal Adda is a leader in online pvt ltd company registration in Bangladesh.
Company Registration in Bangladesh
Smart Outsourcing Solutions is the best company and providing Static, Dynamic, E-commerce,Online Shopping and News Portal website development, Domain Registration, Cheap Web Hosting, Cloud Hosting, WordPress Hosting, Reseller Hosting,
Virtual Private Server (VPS) and Dedicated Hosting,Internet Marketing/Digital Marketing like SEO,
outsourcing institute

Solitairian City Reviews and Complaints said...

nice blog... thanks to share info about your services. This is really useful.

Solitairian city Review

Solitairian city Complaints


Servicedot said...

Its very useful for all. Thanks for sharing this information for us
Ac Service Chennai

shrikant said...

Awesome post presented by you..your writing style is fabulous and keep update with your blogs.
Hire Dedicated Node JS Developers in India
Hire Node JS Developers in India
Hire Node JS Programmers in India

Indiametrics said...

This is a nice post in an interesting line of content.Thanks for sharing this article, great way of bring this topic to discussion. If you are feeling bore, are you interested to play Online Poker India. Here is the list of Best Online Poker sites in India for playing safe and secure.

Negative Impacts of AI
Negative Impacts of Artificial Intelligence

Jewellery By Mitali Jain - Minimal & Contemporary Jewellery said...

Nice Information Blog
Jewellery by Mitali Jain

Jewellery By Mitali Jain is the best website to buy artificial jewellery shop in Jaipur. They sell fancy and attractive statement jewellery designers products like Earrings, Rings, Necklaces, Headgears, Bracelets, Mask and Glass Chains, Bookmark Jewellery, Gift Cards and many more items like this. And also checkout our new collections Summer Luna Collection, Holy Mess Collection and Vintage Trésor Collection.

Haris said...

Thank you for sharing it with us.
I am really happy to see this blog.
It is very helpful for me.

Nursing assignment help

Freelancer Neel said...

Great post!! All the information is very helpful which can help us to increase our knowledge. Another big interesting article, profile creation sites list free
thank you keep sharing. please keep it up!

Freelancer Neel said...

Hello!Beneficial article for beginners. I am a beginner too, so these tips help me a lot thanks for sharing. guest posting sites
Also great with all of the valuable information you have.thank you

Freelancer Neel said...

Really great blog. I am Impressed.blog comment backlink
We appreciate that please keep going to write more blogs. Thanks for sharing with us.

Freelancer Neel said...

Thanks for sharing such a piece of detailed information. I’m a beginner & I wanted to submit my site to the search console. image submission
The information above was very helpful. Thanks

Freelancer Neel said...

Nice post, truly insightful info about SEO. I have used these techniques to bring more traffic to the site and it worked and I used tools to do backlinking.content marketing agency
please keep it up!

Freelancer Neel said...

Nice information and good tips for SEO off-page optimization. I have got good tips to improve SEO off-page Optimization. Email advertising
Thanks for sharing! please keep it up!

Freelancer Neel said...

Great article. Such good information was shared as these sites are really helpful for my website for doing SEO. Email Marketing Strategies
thanks for sharing your post.

Freelancer Neel said...

You are very thankful for sharing this valuable information. I’m a beginner in SEO and want to grab more information about it,social media campaign
I hope you will share this type of post again. please keep it up! Thanks.

Haris said...

Thanks for sharing it with us,
it is a very unique and helpful article for us.

Buy law essay

Solitairian City Reviews and Complaints said...

Thanks for sharing valuable Information. It's really very impressive. Your Post is very unique and all information is reliable for new readers. I hope you continue on blogging job for your readers.
Solitairian Review
Solitairian Review

Perfumes Dubai said...

this is the one i am searching in google to read, if you wish to bakhoor online uae check our website. we are the best perfumes seller and manufacturer in UAE.

Unknown said...

Best wholesale rice exporter is Taksh Global, Buy rice in wholesale from the best rice wholesaler, best quality rice exporter, Best rice dealer, Wholesale rice exporter, Best wholesale rice exporter.
For more info visit: https://thericeexporter.com/

TECH 11 said...

this blog is really very helpful, thank you for sharing such a reliable content. i appreciate your effort.
machine learning training in greater noida

haripravalika456 said...
This comment has been removed by the author.
haripravalika456 said...

verynice article

MuleSoft Demo video in telugu || what is mulesoft || MuleSoft Training videos in telugu

appconsultio said...

top mobile app development company
mobile app development company in Delhi
mobile app development company in Patna
mobile app development company in Mumbai
mobile app development company in Pune

appconsultio said...
This comment has been removed by the author.
rohit said...

I would like to take this opportunity to thank the author for his incredible work. I believe Customer relationship management is essential for every business to create a loyal customer base.
Best CRM in India

Solitairian City Reviews and Complaints said...

Thanks for sharing such a great information with us. Your Post is very unique and all information is reliable for new readers. I am very glad to see this post. It is very interesting and informative.
Solitairian Review
Solitairian Review

Solitairian City Reviews and Complaints said...

I am grateful to the owner of this site which really shares this wonderful work of this site. That is actually great and useful information. I'm satisfied with just sharing this useful information with us. Please keep it up to date like this. Thank you for sharing.
Solitairian city reviews
Solitairian city reviews

Astrology Kart said...

Thanks for sharing this information. Looking for more.

Talk to Astrologer Online

Chat with Astrologer Online

Lakshya Aquapolis reviews said...

Your Content is amazing and I am glad to read them. Thanks for sharing the Blog. this blog is very helpful information for everyone.
Lakshya aquapolis reviews and complaints
Lakshya aquapolis reviews and complaints

Mobile App Development Company said...

Thanks for sharing valuable post

Mr. Kimball said...
This comment has been removed by the author.
Jacab Bob said...

Megger Tester for sale available to be purchased: Megger VF5 1013-098 VF5 Voltstick (container of 12)- $390.00

Highlights:

1.AC non-contact voltage locator
2.12 V to 1000 V voltage range
3.Visual, perceptible and vibration cautioning of low and medium voltages
4.Durable elastic over-formed body
5.Built-in brilliant white LED light
6.Complete with 2xAAA batteries

CONTACT US
OMNI CONTROLS INC.: https://www.omnicontrols.com/
Commerce Park Professional Center 5309 Technology Dr. Tampa, FL 33647
P: 813.971.5001
Email: sales@omnicontrols.com

Visitors Insurance said...

While arranging an excursion to the United States,health insurance for visitors to usa with pre-existing conditions. Be that as it may, numerous insurance agency don't offer plans covering previous ailments yet rather any health related crises abroad. There are explicit circumstances that many firms can take care of with next to no additional expenses.
Contact Us:
Location: 425 Huehl Road,Suite 22-A,Northbrook,IL 60062
Phone : 1-847-897-5120 | Fax : 1.847.897.5130 | Toll Free : 1-800-344-9540
WhatsApp : 1-847-897-5120 | Email: info@visitorsinsurance.com
Website: http://www.visitorsinsurance.com
http://www.facebook.com/myvisitorsinsurance
https://www.trustpilot.com/review/www.visitorsinsurance.com
http://www.linkedin.com/company/visitorsinsurance

jhanviusa said...

Really enjoyed reading your article.
https://rigwelllifetimeonline.com/

Marketingwiththanos said...

Best All india HNI database Provider

HL7 - FHIR - Mirth - Medical Device Software - Healthcare App Development Company in the USA said...

Thanks for sharing the great information.
Wi4 provide services like HL7 such as Mirth Connect . Mirth Connect Support . You may also read related blogs like The Complete HL7 Compliance Checklist , and A Bullet List of Top HL7 Benefits New Comment 23w3rr4

Allen said...


This is truly a great read for me.
https://www.kararaceramics.in


Payday Loans UK said...

This charming cottage has been updated with modern amenities while still retaining its original character, including a cozy fireplace and hardwood floors.

Real Market Adda Loans
Payday Quik Loans