实体框架中的字段最大长度

moi*_*eme 23 asp.net-mvc entity-framework

我需要在我的视图上使用ASP.NET MVC和实体框架在我的测试字段上放置最大长度,我找不到如何获取varchar字段的最大长度.

有没有一种简单的方法来获取它,或数据库字段的任何其他属性

moi*_*eme 37

以下是我如何设法(使用实体的扩展方法):

public static int? GetMaxLength(this EntityObject entite, string nomPropriete)
    {
        int? result = null;
        using (XEntities contexte = XEntities.GetCurrentContext())
        {
            var queryResult = from meta in contexte.MetadataWorkspace.GetItems(DataSpace.CSpace)
                               .Where(m => m.BuiltInTypeKind == BuiltInTypeKind.EntityType)
                              from p in (meta as EntityType).Properties
                                 .Where(p => p.DeclaringType.Name == entite.GetType().Name
                                     && p.Name == nomPropriete
                                     && p.TypeUsage.EdmType.Name == "String")
                              select p.TypeUsage.Facets["MaxLength"].Value;
            if (queryResult.Count() > 0)
            {
                result = Convert.ToInt32(queryResult.First());
            }
        }
        return result;
    }
Run Code Online (Sandbox Code Playgroud)

  • 使用EF 4.1我使用了'DbContext`对象而不是`ObjectContext`.这个问题:http://stackoverflow.com/questions/12378186/entity-framework-5-maxlength与上面的代码类似,帮助我为给定的`DbContext`创建了一个实用工具方法. (2认同)