【问题标题】:How to get column's default value in Entity Framework如何在实体框架中获取列的默认值
【发布时间】:2018-09-18 18:20:41
【问题描述】:

有没有办法在实体框架中获取列的默认值?我似乎无法像创建常规表一样创建 INFORMATION_SCHEMA.COLUMNS 表的实体数据模型。

通常,使用MySQLConnection,我会做类似的事情

SELECT COLUMN_DEFAULT FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = @schema AND TABLE_NAME = 'tablename' AND COLUMN_NAME = 'columnname';

【问题讨论】:

    标签: c# mysql entity-framework


    【解决方案1】:

    Get default sql value from Entity Framework class 可能重复,所以我会引用:

    如果您可以访问生成的 DbContext,则可以使用 DbContext.Model 提供的元数据而不是反射(但如果您使用 Attributes 设置 DefaultValues,则可以使用反射,为什么不!只需使用 MemberInfo.CustomAttributes

    例如:

    foreach (var type in db.Model.GetEntityTypes())
    {
        foreach (var property in type.GetProperties())
        {
            var defaultValue = property.Relational().DefaultValue;
        }
    }
    

    【讨论】:

    • 这似乎不适用于 Code First(这是有道理的)。事实证明我可以做一个.Database.SqlQuery,但我认为这可能符合我的目的。
    猜你喜欢
    • 1970-01-01
    • 2015-01-18
    • 2012-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多