【发布时间】:2014-10-15 22:19:34
【问题描述】:
我的 InventoryGridModel 中有 5 个属性,每个属性都有一个错误,说模型不包含该属性。显然模型是这样,所以不确定是怎么回事,就像代码无法读取模型一样。
型号:
public class InstrumentGridModel
{
public int InstrumentId { get; set; }
public string ItemName { get; set; }
public string SerialNumber { get; set; }
public string CaseNumber { get; set; }
public string LocationName { get; set; }
public string SiteCode { get; set; }
}
应该从数据库中提取信息并填充模型的方法:
public List<InstrumentGridModel> GetInstruments()
{
var results = new List<InstrumentGridModel>();
var data = from i in db.Instrument
join l in db.Location on i.LocationId equals l.LocationId
join t in db.InventoryItem on i.ItemId equals t.ItemId
select new InstrumentGridModel
{
InstrumentId = i.InstrumentId,
ItemName = t.ItemName,
SerialNumber = i.SerialNumber,
CaseNumber = i.CaseNumber,
LocationName = l.LocationName
};
foreach (var i in data)
{
results.Add(new InstrumentGridModel()
{
InstrumentId = data.InstrumentId,
ItemName = data.ItemName,
SerialNumber = data.SerialNumber,
CaseNumber = data.CaseNumber,
LocationName = data.LocationName
});
}
return results;
}
错误(请注意,这只是一个错误,我在所有 5 个属性上都收到相同的错误):
Error 3 'System.Linq.IQueryable<MusicInventory.Models.InstrumentGridModel>' does not contain a definition for 'ItemName' and no extension method 'ItemName' accepting a first argument of type 'System.Linq.IQueryable<MusicInventory.Models.InstrumentGridModel>' could be found (are you missing a using directive or an assembly reference?)
【问题讨论】:
-
InstrumentId = data.InstrumentId,应该是InstrumentId = i.InstrumentId,(数据是不包含名为InstrumentId的属性的集合。 -
请注意,您不需要
foreach循环。你可以使用var data = from i in db.Instrument ... select new InstrumentGridModel {InstrumentId = i.InstrumentId, .....}.ToList(); return data; -
@斯蒂芬。我是这么想的,但如果没有 foreach,我无法让它工作,我收到一个错误“MusicInventory.Models.InstrumentGridModel'不包含'ToList'的定义......”想法?
-
对不起,需要括号
var data = (from ...}).ToList();
标签: c# linq entity-framework asp.net-mvc-4