Reputation: 41
I need to map some auto generated classes, which I dont want to change for obviouse reasions (it's auto generated!).
So is there a possibility to define a Primary Key with fluent API of the Entity Framework (4.3 in my case)? Handling Attributes as ComplexType leads to DbUpdateExcetion due to NULL values. Adding a Primary Key to the generated classes may be a solution, but not suitable for me, POCOs must stay unchanged. Pleas help! Thanks.
Currently I am ignoring the Attributes because of the...
ModelValidationException EntityType 'Attribute' has no key defined. Define the key for this EntityType. EntitySet 'Attributes' is based on type 'Attribute' that has no keys defined.
here is a shortend sample code:
public class Item
{
public ID {set;get;}
public Attribute[] Attributes {set;get;}
}
public class Attribute
{
public SomeComplexType misc1 {set; get;}
public SomeComplexType misc2 {set; get;}
}
public class ItemDb : DbContext
{
public ItemDb(string connection) : base(connection) {}
public DbSet<Item> Items { get; set; }
protected override void OnModelCreating(DbModelBuilder builder)
{
// currently I am ignoring the Attributes
builder.Ignore<Attributes>();
}
}
Upvotes: 4
Views: 6704
Reputation: 4150
You can use HasKey method.
builder.Entity<FooBar>().HasKey(...);
Upvotes: 6