[英]How to join two entity objects together?
我環顧四周以尋求答案,發現的內容與我正在執行的操作類似,但並沒有完全正確。 當它們是列表時,我可以加入兩個實體,但當它們是單個對象時,則不能。 我不確定這是否有意義
這里我有兩個實體對象
Location location = VIPEF.Locations
.Where(w => w.LocationID == id).FirstOrDefault<Location>();
Contact contact = VIPEF.Contacts
.Where(w => w.ContactID == location.ContactID).FirstOrDefault<Contact>();
但是當我去寫一個查詢時:
var query = from a in location
join b in contact on a <-- Thats where I get a problem
一旦我加入了兩者,就無法從位置獲取ID,而我得到的唯一選擇是a.equals
而不是我認為應該獲取的a.LocationID
。
我在這里做錯了什么?
您不需要Linq將兩個對象連接在一起,只需要組成一個新對象。 使用對象初始化程序語法非常簡單:
var thing = new Thing //<-- Your class that has the combined properties you need
{
LocationID = location.LocationID,
LocationName = location.Name,
ContactName = contact.Name,
ContactAddress = contact.Address,
//etc...
};
或者,您可以一次完成所有操作,而不是2個查詢,然后進行合成:
var things = from l in VIPEF.Locations
join c in VIPEF.Contacts on l.ContactID equals c.ContactID
where l.LocationID == id
select new Thing
{
LocationID = location.LocationID,
LocationName = location.Name,
ContactName = contact.Name,
ContactAddress = contact.Address,
//etc...
};
這將為您提供一個IEnumerable<Thing>
,盡管它可能只有一個條目。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.