首页 > 解决方案 > 如何在实体框架中获取列的默认值

问题描述

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

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

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

标签: c#mysqlentity-framework

解决方案


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

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

例如:

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

推荐阅读