【发布时间】:2019-02-25 07:29:18
【问题描述】:
我尝试遵循各种指南和示例,但我无法解决它们。这是我从链接到主表的明细表中删除一行时遇到的错误
操作失败:无法更改关系,因为一个或多个外键属性不可为空。当对关系进行更改时,相关的外键属性将设置为空值。如果外键不支持空值,则必须定义新关系,必须为外键属性分配另一个非空值,或者必须删除不相关的对象。
案例测试 1:
using (var context = new clsDB.Entities())
{
var DELETETEST= (from o in context.Tab_Master.Include("Tab_Details") where o.IdMaster == 472 select o).FirstOrDefault();
if (DELETETEST!= null)
{
var detail = DELETETEST.Tab_Details.First();
DELETETEST.Tab_Details.Remove(detail);
context.SaveChanges();
}
}
案例测试 2:
public class Docume : DbContext
{
public Entities DocumeTest { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Tab_Master>()
.HasKey(x => x.IdMaster);
modelBuilder.Entity<Tab_Details>()
.HasKey(x => x.IdDetails);
modelBuilder.Entity<Tab_Master>()
.HasMany(x => x.Tab_Details)
.WithRequired()
.HasForeignKey(x => x.IdTab_Master)
.WillCascadeOnDelete(false);
}
}
我检查了关系 END1(级联)和 END2(无)
我不知道该怎么办。 你能帮帮我吗?
【问题讨论】:
-
问题的第一部分应该是对您的问题的描述,然后是您得到的错误,然后是您尝试过的内容。请也格式化您的代码。
-
抱歉,我通过 entityFramework 6 创建了到 SQLSERVER 的连接。我必须管理主表和详细表(子表)的数据。我设法查看,编辑但没有删除,因为我给出了错误操作失败:......(如上所述)我已经尝试过,我发现很多人都有同样的问题。这里有一些测试。我解决不了
标签: c# entity-framework