资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

LINQtoSQL映射关系的示例分析

这篇文章主要介绍LINQ to SQL映射关系的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

新荣ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:028-86922220(备注:SSL证书合作)期待与您的合作!

LINQ to SQL映射关系

在 LINQ to SQL 中,数据库关联(如外键到主键关系)是通过应用 AssociationAttribute 属性表示的。

可以在您的实体类中将始终相同的任何数据关系编码为属性引用。例如,在 Northwind 示例数据库中,由于客户通常会下订单,因此在模型中客户与其订单之间始终存在关系。

LINQ to SQL 定义了 AssociationAttribute 属性来帮助表示此类关系。此属性与 EntitySet 和 EntityRef 类型一起使用,来表示将作为数据库中的外键关系的内容。
◆EntitySet :为 LINQ to SQL 应用程序中的一对多关系和一对一关系的集合方提供延迟加载和关系维护。
◆EntityRef:为 LINQ to SQL 应用程序中的一对多关系的单一实例方提供延迟加载和关系维护。

大多数关系都是一对多关系,这一点在本主题后面部分的示例中会有所体现。您还可以按如下方式来表示一对一和多对多关系:

◆一对一:通过向双方添加 EntitySet<(Of <(TEntity>)>) 来表示此类关系。

例如,假设有一个 Customer-SecurityCode 关系,创建此关系的目的是使得在 Customer 表中找不到客户的安全码,而只有得到授权的人才能访问此安全码。

◆多对多:在多对多关系中,链接表(也称作联接表)的主键通常由来自其他两个表的外键组合而成。

例如,假设有一个通过使用链接表 EmployeeProject 构成的 Employee-Project 多对多关系。LINQ to SQL 要求使用以下三个类对这种关系进行模型化: Employee、Project 和 EmployeeProject。在这种情况下,更改 Employee 和 Project 之间的关系似乎需要更新主键 EmployeeProject。但是,这种情况***的模型化处理方法是删除现有 EmployeeProject,然后创建新的 EmployeeProject。

LINQ to SQL映射关系Demo

[Table(Name = "Student")]  public class Student  {  [Column(IsPrimaryKey = true)]  public int ID;  [Column]  public string StuName;  [Column]  public bool Sex;  [Column]  public int Age;  private EntitySet _Scores;  [Association(Storage = "_Score", OtherKey = "StudentID")]  public EntitySet Scores  {  get { return this._Scores; }  set { this._Scores.Assign(value); }  }  }  [Table(Name = "Score")]  public class Score  {  [Column(IsPrimaryKey = true)]  public int ID;  [Column]  public int StudentID;  [Column]  public float Math;  [Column]  public float Chinese;  [Column]  public float English;  [Column]  public DateTime Times;  }

以上是“LINQ to SQL映射关系的示例分析”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!


文章名称:LINQtoSQL映射关系的示例分析
标题URL:http://cdkjz.cn/article/pipesc.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220