How to get Column name and corresponding Database Type from DbContext in Entity Framework Core

前端 未结 3 1333
臣服心动
臣服心动 2020-12-01 21:10

Suppose I have this table:

How can I get the column name and database datatype from DbContext in Entity Framework Core?

Tips

3条回答
  •  予麋鹿
    予麋鹿 (楼主)
    2020-12-01 22:00

    For those who arrived here, but are not using .NET CORE, like me. try this:

    public partial class MyDbContext : System.Data.Entity.DbContext
    {
        public string GetTableName(Type entityType)
        {
            var sql = Set(entityType).ToString();
            var regex = new Regex(@"FROM \[dbo\]\.\[(?.*)\] AS");
            var match = regex.Match(sql);
            return match.Groups["table"].Value;
        }
    
        public string[] GetColumnName(Type entityType)
        {
            var strs = new List();
            var sql = Set(entityType).ToString();
            var regex = new Regex(@"\[Extent1\]\.\[(?.*)\] AS");
            var matches = regex.Matches(sql);
            foreach (Match item in matches)
            {
                var name = item.Groups["columnName"].Value;
                strs.Add(name);
            }
            return strs.ToArray();
        }
    }
    
    
    

    maybe redundante, but it saves time.

    antonio

    提交回复
    热议问题