假设我有一个Person表,其中fk_FriendID与pk_PersonID相关:

LINQ2SQL会自动将其映射为:
Person bert = new Person();
Person ernie = new Person();
bert.Person1 = ernie;如何重写此功能,以便可以将其引用为bert.Friend = ernie?
发布于 2011-11-11 04:37:57
不是最干净的解决方案,但您可以通过分部类添加额外的属性:
partial class Person
{
public Person Friend
{
get { return this.Person1; }
set { this.Person1 = value; }
}
}这也是我将严格类型的枚举属性放在数值字段上的标准过程。
任何其他解决方案,比如处理自动生成的代码,通常都会开始崩溃,因为每次进行模式更改时,您都会不断地重新生成代码。
选择是开始使用EF (我认为他们已经解决了这个问题),但这就像是试图用猎枪来治疗手臂上的发炎一样。
发布于 2011-11-11 04:40:58
从http://msdn.microsoft.com/en-us/library/bb386950.aspx的示例中,看起来您想要这样做:
private EntitySet<Person> _Friends;
[Association(Storage = "_Friends", OtherKey = "PersonID")]
public EntitySet<Person> Friends
{
get { return this._Friends; }
set { this._Friends.Assign(value); }
}编辑:
要通过您的.dbml文件实现此目的,请使用http://msdn.microsoft.com/en-us/library/bb546179.aspx中的说明
您可能会猜到,您需要进行的修改是搜索"Person1“,并根据需要将其替换为"Friend”或"Friends“。
https://stackoverflow.com/questions/8085907
复制相似问题