我需要使用Entity Framework 6获取模型中列的字段大小(模型在数据库中定义,并且在运行时不知道字段大小)。
我在这里看到了EF4 / 5的一些示例代码:
但不幸的是,这段代码在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中解决这个问题?
答案 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;