实体框架6 - 获取字段大小

时间:2016-02-02 09:52:08

标签: c# entity-framework entity-framework-6

我需要使用Entity Framework 6获取模型中列的字段大小(模型在数据库中定义,并且在运行时不知道字段大小)。

我在这里看到了EF4 / 5的一些示例代码:

entity framework 5 MaxLength

但不幸的是,这段代码在EF6中被破坏了:

 var test = objectContext.MetadataWorkspace.GetItems(DataSpace.CSpace);

        if(test == null)
            return null;

        var q = test
            .Where(m => m.BuiltInTypeKind == BuiltInTypeKind.EntityType)
            .SelectMany(meta => ((EntityType) meta).Properties
            .Where(p => p.Name == columnName && p.TypeUsage.EdmType.Name == "String"));

原因是objectContext.MetadataWorkspace.GetItems似乎不再像以前那样返回相同的集合类型,因此您无法使用' where&#以相同的方式搜索集合集。 39;方法等。

有没有人想过如何在EF6中解决这个问题?

1 个答案:

答案 0 :(得分:0)

问题归结于我的使用/包含。这些是必需的:

using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using System.Data.Entity.Core.Metadata.Edm;
using System.Linq.Expressions;
using System.Linq;
using System;