Setting unique Constraint with fluent API?

On EF6.2, you can use HasIndex() to add indexes for migration through fluent API. https://github.com/aspnet/EntityFramework6/issues/274 Example modelBuilder .Entity<User>() .HasIndex(u => u.Email) .IsUnique(); On EF6.1 onwards, you can use IndexAnnotation() to add indexes for migration in your fluent API. http://msdn.microsoft.com/en-us/data/jj591617.aspx#PropertyIndex You must add reference to: using System.Data.Entity.Infrastructure.Annotations; Basic Example Here is a simple usage, adding an … Read more

Getting exact error type in from DbValidationException

While you are in debug mode within the catch {…} block open up the “QuickWatch” window (ctrl+alt+q) and paste in there: ((System.Data.Entity.Validation.DbEntityValidationException)ex).EntityValidationErrors This will allow you to drill down into the ValidationErrors tree. It’s the easiest way I’ve found to get instant insight into these errors. For Visual 2012+ users who care only about the … Read more

Entity framework linq query Include() multiple children entities

Use extension methods. Replace NameOfContext with the name of your object context. public static class Extensions{ public static IQueryable<Company> CompleteCompanies(this NameOfContext context){ return context.Companies .Include(“Employee.Employee_Car”) .Include(“Employee.Employee_Country”) ; } public static Company CompanyById(this NameOfContext context, int companyID){ return context.Companies .Include(“Employee.Employee_Car”) .Include(“Employee.Employee_Country”) .FirstOrDefault(c => c.Id == companyID) ; } } Then your code becomes Company company = … Read more

How to add/update child entities when updating a parent entity in EF

Because the model that gets posted to the WebApi controller is detached from any entity-framework (EF) context, the only option is to load the object graph (parent including its children) from the database and compare which children have been added, deleted or updated. (Unless you would track the changes with your own tracking mechanism during … Read more

Update Row if it Exists Else Insert Logic with Entity Framework [closed]

If you are working with attached object (object loaded from the same instance of the context) you can simply use: if (context.ObjectStateManager.GetObjectStateEntry(myEntity).State == EntityState.Detached) { context.MyEntities.AddObject(myEntity); } // Attached object tracks modifications automatically context.SaveChanges(); If you can use any knowledge about the object’s key you can use something like this: if (myEntity.Id != 0) { … Read more

The cast to value type ‘Int32’ failed because the materialized value is null

A linq-to-sql query isn’t executed as code, but rather translated into SQL. Sometimes this is a “leaky abstraction” that yields unexpected behaviour. One such case is null handling, where there can be unexpected nulls in different places. …DefaultIfEmpty(0).Sum(0) can help in this (quite simple) case, where there might be no elements and sql’s SUM returns … Read more

How to force LINQ Sum() to return 0 while source collection is empty

Try changing your query to this: db.Leads.Where(l => l.Date.Day == date.Day && l.Date.Month == date.Month && l.Date.Year == date.Year && l.Property.Type == ProtectedPropertyType.Password && l.Property.PropertyId == PropertyId) .Select(l => l.Amount) .DefaultIfEmpty(0) .Sum(); This way, your query will only select the Amount field. If the collection is empty, it will return one element with the value … Read more

The object ‘DF__*’ is dependent on column ‘*’ – Changing int to double

Try this: Remove the constraint DF_Movies_Rating__48CFD27E before changing your field type. The constraint is typically created automatically by the DBMS (SQL Server). To see the constraint associated with the table, expand the table attributes in Object explorer, followed by the category Constraints as shown below: You must remove the constraint before changing the field type.

The relationship could not be changed because one or more of the foreign-key properties is non-nullable

You should delete old child items thisParent.ChildItems one by one manually. Entity Framework doesn’t do that for you. It finally cannot decide what you want to do with the old child items – if you want to throw them away or if you want to keep and assign them to other parent entities. You must … Read more

What’s the difference(s) between .ToList(), .AsEnumerable(), AsQueryable()?

There is a lot to say about this. Let me focus on AsEnumerable and AsQueryable and mention ToList() along the way. What do these methods do? AsEnumerable and AsQueryable cast or convert to IEnumerable or IQueryable, respectively. I say cast or convert with a reason: When the source object already implements the target interface, the … Read more