我有我的課GreenGroup
,它從摘要Group
繼承。 GreenGroup
有一個在部分類中定義的未映射屬性State
。查詢未映射的類成員
我有一個方法GetGreenGroups(GroupFilter filter)
應該返回一個GreenGroup對象列表,其中State == filter.State。
public List<GreenGroup> GetGreenGroups(GroupFilter filter)
{
IQueryable<VirtualMachineInfo> result = GetAllGroupsInternal(userContext);
if(filter.OwnerId != Guid.Empty)
{
result = result.Where(g => g.OwnerID == filter.OwnerId);
}
// this is the unmapped property
if(filter.State.IsNotNullOrEmpty())
{
result = result.Where(g => g.State == filter.State);
}
// This will throw Class Member Unmapped exception
return new List<GreenGroup>(result);
}
然而,由於State
是不是在數據庫中的字段,這是否意味着我不能將其包含在我的LINQ查詢,但必須在查詢返回之後,進一步篩選我的名單?
我看過幾個網站,包括這個one,其中用戶收到相同的異常Class Member unmapped
,但該字段在他們的數據庫,所以它看起來不像一個明確的演員將幫助我。
是我唯一的選擇,像這樣分離過濾?
public List<GreenGroup> GetGreenGroups(GroupFilter filter)
{
IQueryable<VirtualMachineInfo> result = GetAllGroupsInternal(userContext);
if(filter.OwnerId != Guid.Empty)
{
result = result.Where(g => g.OwnerID == filter.OwnerId);
}
var groups = new List<GreenGroup>(result);
if(filter.State.IsNotNullOrEmpty())
{
groups = (from g in groups where g.State == filter.State select g).ToList();
}
return groups;
}
謝謝,我會研究一下。我在WCF服務中使用它,所以這仍然比沒有好 – earthling 2011-03-22 21:00:28