Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# EF Eager Loading不适用于多个集合和小数_C#_Entity Framework_Decimal_Loading_Eager - Fatal编程技术网

C# EF Eager Loading不适用于多个集合和小数

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

我在实体框架和快速加载方面有问题: 如果我想加载几个只包含小数的集合,那么前两个集合将提供正确的数据。第三个include提供了一个没有逗号分隔符的数字: 这是我的模型:

 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();