我正在尝试在几个表之间创建可选关联。我有一个名为Invoice的表。 Invoice表通过CustomerId字段具有对Customer表的FK引用。 Invoice表还具有通过ProjectId字段对项目强制执行的FK引用。
是否有设置我的Linq-To-Sql类以在Invoice和Project表之间建立可选关联?
我希望能够通过此协会选择项目名称(如果有的话)。
澄清
是否可以在dbml文件中进行设置?我有一个扩展Invoice实体的部分类,并希望能够创建一个名为ProjectName的属性来包装Invoice.Project.Name。
只是想知道这是否可行,或者我是否必须在查询中返回左连接值。
答案 0 :(得分:0)
这应该这样做(VB语法):
Dim results = _
From i in context.Invoice _
Join c in context.Customer On i.CustomerId Equals c.CustomerId _
Group Join p in context.Project On i.ProjectId Equals p.ProjectId Into g = Group _
Select i.InvoiceName, c.CustomerName, ProjectName = (From x In g Select x.Name).SingleOrDefault
答案 1 :(得分:0)
我想我想出来了......这比我想象的要简单得多。我只需检查部分类中的关系是否为null,这扩展了LinqToSql类。
类似的东西:
public string ModifiedByName
{
get
{
if (this.ModifiedByUser == null)
return string.Empty;
else
return this.ModifiedByUser.FirstName + " " + this.ModifiedByUser.LastName;
}
}
public string CreatedByName
{
get
{
if (this.CreatedByUser == null)
return string.Empty;
else
return this.CreatedByUser.FirstName + " " + this.CreatedByUser.LastName;
}
}