我有两个不同对象的列表,一个来自第三方 API,另一个来自我的数据库 - 我试图将两者作为关系链接。Customer.Orders
理想情况下,与 DBML 如何为具有外键 ( )的表创建关系具有类似的效果。
来自第三方:
class ApiObject {
public string ID { get; set; }
public string Title { get; set; }
public DateTime CreatedDate { get; set; }
... 30 other properties ...
}
从我的数据库:
class DbmlObject {
public int ID { get; set; }
public string ApiID { get; set; }
public string OtherString { get; set; }
}
它们通过以下方式相关ApiObject.ID == DbmlObject.ApiID
我不想合并这些,也不想将它们加入一些匿名对象(并明确列出 30 多个属性) - 而是DbmlObject
制作ApiObject
. 即:可寻址为:
apiObject.DbmlObjects.First().OtherString
或理想情况下apiObject.DbmlObject.OtherString
,因为它是一对一的关系。
在控制器中:
List<ApiObject> apiObjects = _thirdParty.GetObjects();
DbmlDataContext model = new DbmlDataContext();
List<DbmlObject> dbmlObjects = model.GetAllDbmlObjects();
// relate them here
foreach (var apiObject in apiObjects)
Console.Write(apiObject.DbmlObject.OtherString)
// NOTE: ideally this foreach loop should not make a DBML query on each iteration, just the single GetAllDbmlObjects query above.