OK、DBA が話しています。敬意を表して頭を下げ、何ができるか見てみましょう。残念ながら、EF 5 (およびそれ以下) では、簡単にするためにできることはあまりありません。EF 6 には、カスタム コード ファースト コンベンションのこの機能があり、実際にそれを簡単に行うことができます。私はちょうど小さなサンプルを試しました:
// Just some POCO
class Person
{
public int PersonId { get; set; }
public string PersonName { get; set; }
}
// A custom convention.
class FirstCharLowerCaseConvention : IStoreModelConvention<EdmProperty>
{
public void Apply(EdmProperty property, DbModel model)
{
property.Name = property.Name.Substring(0, 1).ToLower()
+ property.Name.Substring(1);
}
}
class MyContext : DbContext
{
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Person>();
// Add the convention to the modelbuilder.
modelBuilder.Conventions.Add(new FirstCharLowerCaseConvention());
base.OnModelCreating(modelBuilder);
}
}
走った後
using (var db = new MyContext())
{
db.Database.Create();
}
私のデータベースには と のPeople
テーブルがpersonId
ありpersonName
ます。
また、いくつかの単純な CRUD アクションは問題なく動作します。
using (var db = new MyContext())
{
var p = new Person { PersonName = "Another Geek" };
db.Set<Person>().Add(p);
db.SaveChanges();
}
using (var db = new MyContext())
{
var x = db.Set<Person>().ToList();
}
したがって、DBA が規則を必要とする場合は、新しいおもちゃを要求できます :)