【发布时间】:2019-08-28 15:20:20
【问题描述】:
我正在使用 LINQPad 连接到 SQL Server 数据库,然后生成 TypedDataContext。
在旧版本的数据库中,表(不是通过 ASP.NET C# 代码生成的)具有其他表的导航属性。
在团队开发的新版本中,没有导航属性。
我的第一直觉是缺少约束,事实证明这是真的。开发人员将外键约束添加到表后,仍然没有导航属性。
使用ILSpy for LINQPad,我反思了表中表示的类型,发现在一个对象中存在具有Association属性的属性:
[XmlIgnore]
[Association(Name = "FK_AvailabilityActivity_SFT_WK_Shift", Storage = "_Ds_Shift", ThisKey = "SFT_WK,SFT_WK", OtherKey = "SFT_WK,SFT_WK", IsForeignKey = true)]
public Ds_Shift Ds_Shift
{
get
{
//Error decoding local variables: Signature type sequence must have at least one element.
return _Ds_Shift.Entity;
}
set
{
//Error decoding local variables: Signature type sequence must have at least one element.
_Ds_Shift.Entity = value;
}
}
而另一个新对象没有。
所以,我的问题是:
LINQPad 使用什么信息来生成这些属性?
一旦我知道了这一点,我应该能够使用导航属性跨表添加信息和查询。
【问题讨论】: