首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当表与自身有关系时,如何重命名LINQ的名称?

当表与自身有关系时,如何重命名LINQ的名称?
EN

Stack Overflow用户
提问于 2011-11-11 04:33:31
回答 2查看 264关注 0票数 1

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

LINQ2SQL会自动将其映射为:

代码语言:javascript
复制
Person bert = new Person();
Person ernie = new Person();

bert.Person1 = ernie;

如何重写此功能,以便可以将其引用为bert.Friend = ernie?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-11 04:37:57

不是最干净的解决方案,但您可以通过分部类添加额外的属性:

代码语言:javascript
复制
partial class Person
{
   public Person Friend
   {
      get { return this.Person1; }
      set { this.Person1 = value; }
   }
}

这也是我将严格类型的枚举属性放在数值字段上的标准过程。

任何其他解决方案,比如处理自动生成的代码,通常都会开始崩溃,因为每次进行模式更改时,您都会不断地重新生成代码。

选择是开始使用EF (我认为他们已经解决了这个问题),但这就像是试图用猎枪来治疗手臂上的发炎一样。

票数 1
EN

Stack Overflow用户

发布于 2011-11-11 04:40:58

http://msdn.microsoft.com/en-us/library/bb386950.aspx的示例中,看起来您想要这样做:

代码语言:javascript
复制
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“。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8085907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档