我有兩個不同的對象列表,一個來自第三方API,另一個來自我的數據庫 - 我試圖將這兩個關係鏈接起來。理想情況下,DBML與外鍵表(Customer.Orders
)創建關係的效果相似。關聯兩個列表LINQ擴展
來自第三方:
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.DbmlObjects.First().OtherString
或理想情況下,因爲它是1對1的關係。
在控制器:
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.
它們是如何通過「ApiID」關聯的? – 2012-07-17 20:25:55
@TimSchmelter by'ApiObject.ID == DbmlObject.ApiID',是我的猜測。 – 2012-07-17 20:27:11
是的,對不起,以爲它很直觀,但我會明確 – arserbin3 2012-07-17 20:28:36