gpt4 book ai didi

entity-framework-4 - 这个映射有什么问题?

转载 作者:行者123 更新时间:2023-12-04 06:10:48 24 4
gpt4 key购买 nike

我想根据下面的类字典创建下表。添加记录时出现异常。这个映射有什么问题?如果我将类“B”的 Child 属性指向另一个类(例如“C”),则此代码有效。

database table 
table A {id, name}
table B {parentId, childId, Type}

类和映射
Public class A
{
public int Id {get;set;}
public string Description {get;set;}
}

Public class B
{
[Key, Column(Order=0)]
public int ParentId {get;set;}
[Foreignkey("ParentId")]
public A Parent {get;set;}

[Key, Column(Order=1)]
public int ChildId {get;set;}
[Foreignkey("ChildId")]
public A Child {get;set;}

[Key, Column(Order=2)]
public string Type {get;set;}

}

更新

错误信息是:在表 'B' 上引入 FOREIGN KEY 约束 'B_Parent' 可能会导致循环或多个级联路径。指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN KEY 约束。
无法创建约束。请参阅以前的错误。

谢谢,

阿什拉夫

最佳答案

阅读以下帖子后,我找到了解决方案。
http://weblogs.asp.net/manavi/archive/2011/05/01/associations-in-ef-4-1-code-first-part-5-one-to-one-foreign-key-associations.aspx

Entity Framework Code First - Defining Relationships/Keys

这是 SQL Server 错误。 “A”类在“B”类中引用了两次。 Code First 尝试为“B”类中的父列和子列打开级联删除,这会导致异常。

修复是在 B 类中手动将级联选项之一覆盖为 false。我不知道如何将 CascadeOnDelete 选项设置为字典属性。但这里是流畅的api。

 HasRequired(x => x.Parent)
.WithMany()
.HasForeignKey(x => x.ParentId)
.WillCascadeOnDelete(false);

我希望 EF 团队尝试为我们编写 Code First 配置 (Fluent API) 手册的综合指南。 AdventureWorks-2008 数据库是一个很好的候选者。

关于entity-framework-4 - 这个映射有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7814400/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com