c# - Entity Framework won't save complex object -
i have following poco classes
public class addresstype { public guid addresstypeid; public string typename; } public class address { ... public virtual guid addresstypeid { get; set; } public virtual addresstype addresstype { get; set; } } public class locale { public virtual icollection<address> addresses { get; set; } }
with following in context create database
modelbuilder.entity<address>() .hasrequired(p => p.addresstype) .withmany() .hasforeignkey( p => p.addresstypeid) .willcascadeondelete( false ); modelbuilder.entity<addresstype>().haskey(p => p.addresstypeid); modelbuilder.entity<addresstype>().property(p => p.addresstypeid) .hasdatabasegeneratedoption(databasegeneratedoption.identity); modelbuilder.entity<addresstype>().property(p => p.typename) .isrequired() .hasmaxlength(32);
now looks me. heres problem. can create locale add address this
... locale locale = irepostory.locales.where( p => p.localeid == new guid("xxxx")).singleordefault(); address address = new address(); address.addresstypeid = "xxxxx"; address.addresstype = irepository.addresstypes.where( p => p.addresstypeid == "xxxx").singleordefault(); irepository.savelocale(locale); works fine. if attempt add additional address fails locale locale = irepostory.locales.where( p => p.localeid == new guid("xxxx")).singleordefault(); address address = new address(); address.addresstypeid = "xxxxx"; address.addresstype = irepository.addresstypes.where( p => p.addresstypeid == "xxxx").singleordefault(); locale.adresses.add(address); irepository.savelocale(locale); seems error entityvalidationerrors entityvalidationerrors.entry.entity.gettype().name addresstype entityvalidationerrors.entry.state added entityvalidateerror.validationerrors validationerror.property = typename
why can't add additional addresses?
know error coming address added locale because created address , set it's locale_localeid directly in database , 2 sets of errors. why addresses added causing error?
Comments
Post a Comment