Chr*_*tof 5 .net c# linq sql-server linq-to-sql
我有一个带有两个外键的链接表。它们一起构成表的主键。我正在尝试在 Linq 中映射它:
[Table(Name = "PartToPart")]
public class PartToPart
{
[Column(Name = "PartID", IsPrimaryKey = true )]
public int PartID { get; set; }
[Column(Name = "ParentPartID", IsPrimaryKey = true)]
public int ParentPartID { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我假设这是错误的,并且让 Linq 假设两列都是它们自己的主键?如果我尝试将新条目保存到该表中,则会收到约束冲突错误:
违反主键约束...无法在对象 dbo.PartToPart 中插入重复键。重复的键值是...
我尝试通过 INSERT 查询手动插入键,效果很好,所以我假设我的表设置正确。奇怪的是,无论错误消息如何,插入都会起作用。
我检查了文档,对我来说,它听起来应该按照我的方式工作:
如果使用此属性指定多个类成员,则该键被称为关联列的组合。
对此有什么帮助吗?谢谢。
您的类定义是正确的。您使用复合键编写的实体与您所编写的完全一样。请注意,正如所写,键必须由 C# 代码设置,并且它们不是自动递增字段。你告诉我这是准确的,所以这不是问题。
鉴于错误,我会说您正在尝试插入两次相同的记录(和/或插入两次“空”记录,然后由 .NET将PartID和设置为 0)ParentPartID
| 归档时间: |
|
| 查看次数: |
5433 次 |
| 最近记录: |