首页 > 解决方案 > EF5:MySQL 浮点值转换为实体单一属性 - 逗号丢失

问题描述

使用带有 EF5 的 DatabaseFirst 方法,floatmySQL 中的一个字段被转换SingleDatabaseModel. 逗号信息有时似乎完全丢失,例如:

在我的数据库中,有itemtool's 和某些productiondata's 产生的 's。Therfor eachtool有一个集合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)

标签: c#mysqlentity-framework

解决方案


推荐阅读