C# EF Eager Loading不适用于多个集合和小数
我在实体框架和快速加载方面有问题: 如果我想加载几个只包含小数的集合,那么前两个集合将提供正确的数据。第三个include提供了一个没有逗号分隔符的数字: 这是我的模型:C# EF Eager Loading不适用于多个集合和小数,c#,entity-framework,decimal,loading,eager,C#,Entity Framework,Decimal,Loading,Eager,我在实体框架和快速加载方面有问题: 如果我想加载几个只包含小数的集合,那么前两个集合将提供正确的数据。第三个include提供了一个没有逗号分隔符的数字: 这是我的模型: public class ShoppingBasket { [Key] public int ID { get; set; } public decimal PriceTotal { get; set; } public ICollection<Article> Articel
public class ShoppingBasket
{
[Key]
public int ID { get; set; }
public decimal PriceTotal { get; set; }
public ICollection<Article> ArticelsA { get; set; }
public ICollection<Article> ArticelsB { get; set; }
public ICollection<Article> ArticelsC { get; set; }
}
public class Article
{
[Key]
public int ID { get; set; }
public string Description { get; set; }
public decimal Price { get; set; }
}
这就是我认为的结果
aArticles A:
Teller 45,87
Schere 48,70
Feuerzeug 20,00
Articles B:
Pizza 123,14
Burger 99,87
Articles C:
Auto 2314,00
Taxi 7987,00
数据库中的汽车价格为23,14,出租车价格为79,87
这不是视图的问题,使用调试器,我也可以在basket对象中看到这个问题
如果我将包含更改为ArticlesA、ArticlesC、ArticlesB,则B的值为false
作为一个快速解决方法,我重新加载了第三个集合,行中注释:
db.Entry(person).Collection("ArticelsC").Load();
但是这个解决方案生成了第二个db调用,或者每个集合生成一个调用,我以后需要更多,或者在更复杂的实体结构中需要这些调用这是哪个EF版本?使用哪个数据库和数据库版本?是CodeFirst还是edmx?您的模型中的精度和比例设置是否与数据库中的配置方式相同?@Slauma和Pawel:我使用的是MySQL 5.5.27代码优先。decimal属性的列被自动配置为decimal(18,2)。如果我加载单个值或加载前两个“includes”的集合,则值的加载工作正常。仅对于第三个或更高版本的“包含”,加载的值不带逗号
db.Entry(person).Collection("ArticelsC").Load();