Entity Framework - Remove object with foreign key, preserving parent

折月煮酒 提交于 2019-12-18 09:49:46

问题


I have have the following models:

public class Company
{
    //Primary key
    public string ID { get; set; } 

    //Foreign key
    public int? LogotypeID { get; set; }
}

and

public class Logotype
{
    //Primary key
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int? ID { get; set; }

    //Foreign key
    public string CompanyID { get; set; }
}

How do I delete the logotype from the Company table, without removing the company row?

Using:
http://msdn.microsoft.com/en-us/library/system.data.entity.dbset.remove(v=vs.113).aspx DbSet.Remove(Logotype) thows the following exception:

{"The DELETE statement conflicted with the REFERENCE constraint \"FK_dbo.Companies_dbo.Logotypes_LogotypeID\". The conflict occurred in database \"ShipReg\", table \"dbo.Companies\", column 'LogotypeID'.\r\nThe statement has been terminated."}

Any ideas?

Br, Tim


回答1:


add a virtual property in company like

public class Company
{
    //Primary key
    public string ID { get; set; } 

    //Foreign key
    public int? LogotypeID { get; set; }

    public virtual Logotype Logotype {get;set;}
}

and then

dbContext.Entry<Company>(company).State=EntityState.Modified;
dbContext.Entry<Logotype>(company.Logotype).State=EntityState.Deleted;


来源:https://stackoverflow.com/questions/22858491/entity-framework-remove-object-with-foreign-key-preserving-parent

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!