ef5:mysql浮点值转换为实体单个属性-逗号丢失

zsohkypk  于 2021-06-18  发布在  Mysql
关注(0)|答案(0)|浏览(177)

将databasefirst aproach与ef5结合使用 float mysql中的字段转换为 Single 中相应实体中的属性 DatabaseModel . 逗号信息有时似乎完全丢失,例如:
1(mysql)->1(实体)
1,5(mysql)->15(实体)
0,2(mysql)->2e+08(实体)
在我的数据库里有 item 的生产商 tool 他和某些人在一起 productiondata 的。为每个 tool 有一个 productiondata 的(1对多)。也是每个 item 有一个 productiondata 的(1对多)。在我的代码中,有一个泛型函数将每个数据库表加载到 List<entity> 迫不及待地装货。 List<productiondata> 可以。 List<tool> 包括收藏 tool.productiondata 这也可以。 List<item> 包括收藏 item.productiondata 包含损坏的浮点值。我不明白为什么它两次工作一次不工作,因为所有的实体都是由下面相同的函数加载的。。。

public void loadFromDatabase<TEntity>(ref List<TEntity> lst, List<string> lstCollectionNames) where TEntity : class
{
    using (var ctx = new techdbEntities1())
    {
        ctx.Configuration.LazyLoadingEnabled = false;

        IQueryable<TEntity> dbSet = ctx.Set<TEntity>();

        if (dbSet != null)
        {
            foreach (var collectionName in lstCollectionNames)
                dbSet = dbSet.Include(collectionName);  // 'Eager Loading'
            lst = dbSet.ToList<TEntity>();

            foreach (TEntity e in lst)                        
                ctx.Entry(e).State = EntityState.Unchanged;     // DBEntityEntry.State

            foreach (TEntity e in lst)
                e.GetType().GetProperty("State").SetValue(e, StateEnum.UnModified);     // TEntity.State
        }
    }
}

现在我可以拿到 productiondata 对于来自的项目 List<productiondata> 而不是 item.productiondataList<item> ,解决了表面问题。但我仍然对浮点数域腐败的原因很感兴趣。
以下是sql:

CONSTRAINT `fk_productiondata_item1`    
FOREIGN KEY (`item_internalNr`)    
REFERENCES `techdb`.`item` (`internalNr`)    
ON DELETE NO ACTION  
ON UPDATE NO ACTION,  

CONSTRAINT `fk_productiondata_tool1`    
FOREIGN KEY (`tool_basetool_internalNr` , `tool_number`)    
REFERENCES `techdb`.`tool` (`basetool_internalNr` , `number`)
ON DELETE NO ACTION 
ON UPDATE NO ACTION)

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题