使用LINQ to SQL时类之间的关系(DB中没有关系)

时间:2015-03-20 14:46:55

标签: c# linq-to-sql

我的数据库中有两个表 - >活动和客户。每个Activity都有一个CustomerId,但是数据库的设计者没有添加任何外键约束。

我希望能够写

activity.Customer.Name //Returns name of the customer 

所以我需要一种方法告诉LINQ to SQL将Activity对象中的CustomerId映射到正确的Customer对象。

我当然可以这样做:

var customers = db.Customers;
var activities = db.Activities;

然后手动将它们相互映射,但那会很痛苦......

这可能吗?遗憾的是,添加外键约束不是一种选择。

1 个答案:

答案 0 :(得分:0)

你可以写下两行。

var customer = db.Customers.First(c => c.Id == activity.CustomerId);
var customerName = customer.Name;

进一步编写扩展方法

static Customer GetCustomer(this Activity)
{
    return db.Customers.First(c => c.Id == activity.CustomerId);
}

并使用

activity.GetCustomer().Name;