C# 使用字典对象的实体框架
在实体框架中,我想看看我是否可以填充一个字典,而不是一个模型。在过去,我总是映射到模型对象。但是我想使用dictionary对象来避免由于多个CLR类型错误而造成的歧义C# 使用字典对象的实体框架,c#,entity-framework,dictionary,C#,Entity Framework,Dictionary,在实体框架中,我想看看我是否可以填充一个字典,而不是一个模型。在过去,我总是映射到模型对象。但是我想使用dictionary对象来避免由于多个CLR类型错误而造成的歧义 var dictionaryFlatFee = new Dictionary<int, decimal?>(); var listOfFees = (from p in db.Pricings select new dictionaryFlatFee
var dictionaryFlatFee = new Dictionary<int, decimal?>();
var listOfFees = (from p in db.Pricings
select new dictionaryFlatFee
{
p.Id,
p.Price,
}).AsEnumerable()
.ToList();
var dictionaryFlatFee=newdictionary();
var listOfFees=(从p到db.Pricings)
选择new dictionaryFlatFee
{
p、 身份证,
p、 价格,
}).可计算的()
.ToList();
您可以选择所需的数据,并通过ForEach将其放入词典平台中,如下所示
var dictionaryFlatFee=newdictionary();
(来自p,单位为分贝价格)
选择新的
{
p、 身份证,
p、 价格,
})
.ToList().ForEach(a=>dictionaryFlatFee.Add(a.Id,a.Price));
另一个选择是方法
var dictionary=db.Pricings.ToDictionary(a=>a.Id,a=>a.Price);
只是为了最后确定答案,因为有些评论让答案更清楚。您只需检索db.Pricings
并调用ToDictionary()
方法,该方法是可枚举API的一部分:
var FeesDictionary = db.Pricings.ToDictionary(key=>key.Id, val=>val.Price);
db.Pricings
返回一个DbSet
,它实现了IEnumerable
,因此它使所有可枚举
方法都可用于管理返回的实体。在将返回值转换为字典之前,您仍然可以Select()
,但这是非常不必要的,所以请忽略它
我还想向您介绍LINQ,这将极大地提高您对LINQ的了解。.AsEnumerable()
在这里是多余的。我还认为选择
有点不必要。但因为我没有测试这个,我只是想我应该发布我知道肯定会有用的东西。英雄联盟让我改变这个,很公平。Select
可能是不必要的,但它减少了从数据库检索到的数据量,这就是为什么我没有提到它。你在@AluanHaddad上完全正确,这就解决了:只是一个更正:Select
这里返回IQueryable
,因为源代码是IQueryable
,但是IQueryable
扩展了IEnumerable
var dictionaryFlatFee=wait db.Pricings.ToDictionaryAsync(pricing=>pricing.Id,pricing=>pricing.Price)代码>我之前回答过,但你接受了其他人的回答。这不公平