
public class UserProfile{ public GuID UserProfileID {get; set;} public GuID PostalAddressID {get;set;} public virtual Address PostalAddress {get;set;} public GuID PhysicalAddressID {get;set;} public virtual Address PhysicalAddress {get;set;}}public class Address{ public GuID AddressID {get;set;} public string lineOne {get;set;} public string lineTwo {get;set;} public string lineThree {get;set;}} 接下来是我流畅的映射
public UserProfileMapPing(){ Totable("UserProfile"); HasKey(pk => pk.UserProfileID); Property(pr => pr.UserProfileID).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None); Hasrequired(a => a.PostalAddress).WithMany().HasForeignKey(fk => fk.PostalAddressID); Hasrequired(a => a.PhysicalAddress).WithMany().HasForeignKey(fk => fk.PhysicalAddressID);}public AddressMapPing(){ Totable("Address"); HasKey(pk => pk.AddressID); Property(pr => pr.AddressID).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);} 当我尝试运行update-database时,我得到:
Introducing FOREIGN KEY constraint
‘FK_dbo.UserProfile_dbo.Address_PhysicalAddressID’ on table
‘UserProfile’ may cause cycles or multiple cascade paths. Specify ON
DELETE NO ACTION or ON UPDATE NO ACTION,or modify other FOREIGN KEY
constraints.
我需要在Address对象上没有任何反向映射.
我还需要能够硬删除UserProfile对象,包括其子地址(其中只有两个地址表).
我的问题是,我想要的是什么?如果是这样,我做错了什么?
[编辑]
Address对象也用于UserCompany和Customer等对象.
Hasrequired(a => a.PostalAdress) .WithMany() .HasForeignKey(fk => fk.PostalAddressID) .WillCascadeDelete(false);总结
以上是内存溢出为你收集整理的c# – Fluent api Cascade删除与一个表的关系全部内容,希望文章能够帮你解决c# – Fluent api Cascade删除与一个表的关系所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)