根據我如何將我的linq查詢映射到我的域對象,我得到以下錯誤LINQ to SQL Translation
成員'member'不支持對SQL的轉換。
此代碼導致錯誤:
public IQueryable<ShippingMethod> ShippingMethods {
get {
return from sm in _db.ShippingMethods
select new ShippingMethod(
sm.ShippingMethodID,
sm.Carrier,
sm.ServiceName,
sm.RatePerUnit,
sm.EstimatedDelivery,
sm.DaysToDeliver,
sm.BaseRate,
sm.Enabled
);
}
}
此代碼工作正常:
public IQueryable<ShippingMethod> ShippingMethods
{
get
{
return from sm in _db.ShippingMethods
select new ShippingMethod
{
Id = sm.ShippingMethodID,
Carrier = sm.Carrier,
ServiceName = sm.ServiceName,
EstimatedDelivery = sm.EstimatedDelivery,
DaysToDeliver = sm.DaysToDeliver,
RatePerUnit = sm.RatePerUnit,
IsEnabled = sm.Enabled,
BaseRate = sm.BaseRate
};
}
}
這是我TestMethod的我與測試:
[TestMethod]
public void Test_Shipping_Methods() {
IOrderRepository orderRepo = new SqlOrderRepository();
var items = orderRepo.ShippingMethods.Where(x => x.IsEnabled);
Assert.IsTrue(items.Count() > 0);
}
如何在路上我實例化我的對象影響LINQ到SQL翻譯?
感謝 本
在我需要使用構造函數的情況下,我該怎麼辦?例如,我需要初始化對象的狀態,並且這是使用持久化到數據庫的枚舉完成的。因此,我需要將此值傳遞給構造函數。謝謝 – 2010-03-16 15:15:13
您可以擁有一個構造函數,而不是帶參數的構造函數。初始化應該在無參數(=默認)構造函數中進行。 – 2010-03-16 16:23:23
好吧,但我相信在分配屬性值之前,使用上面的對象初始化器語法進行初始化會觸及默認構造器。所以,如果我需要初始化一個基於我上面映射的狀態屬性,我將不得不添加某種初始化方法,並在映射完成後調用它。 – 2010-03-16 19:58:41