一般来说,我倾向于使用以下驼峰式命名我的 sql 数据库列:
camelCase(注意首字母小写)。
但是在使用 C# 时,我喜欢按照以下约定命名对象的公共(public)属性:
PascalCase(注意第一个是大写)。
Entity Framework 的默认行为是命名创建的类的属性以匹配它们在数据库中的相对列名。
项目/解决方案级别是否有任何属性可以更改以解决此问题?
最佳答案
是的。在这里你可以看到完整的例子:
using System;
using System.Data.Entity;
namespace ConsoleApplication1
{
class MyDbContext : DbContext
{
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Properties().Configure(c =>
{
var name = c.ClrPropertyInfo.Name;
var newName = char.ToLower(name[0]) + name.Substring(1);
c.HasColumnName(newName);
});
}
public MyDbCondenxt(string cs) : base(cs)
{
}
public DbSet<MyModel> MyModels { get; set; }
}
class Program
{
static void Main(string[] args)
{
var context = new MyDbContext ("DefaultConnection");
context.MyModels.Add(new MyModel{SomeText = "hello"});
context.SaveChanges();
Console.ReadLine();
}
}
class MyModel
{
public int Id { get; set; }
public string SomeText { get; set; }
}
}
属性名称是“SomeText”,列名称是“someText”。
关于c# - Entity Framework - 大写第一个属性名称字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6505088/