2011-01-25 19 views
51

Tôi thích sử dụng danh từ số ít hơn khi đặt tên cho các bảng cơ sở dữ liệu của mình. Tuy nhiên, trong mã EF, các bảng được tạo luôn luôn là số nhiều. DbSets của tôi là số nhiều mà tôi tin là nơi mà EF đang tạo ra tên nhưng tôi không muốn chỉ ra những cái tên này vì tôi tin rằng nó có tính tỉ mỉ hơn để có số nhiều mã. Tôi cũng đã cố gắng ghi đè cài đặt nhưng vô ích.Làm cách nào để tôi làm đơn giản hóa các bảng của mình trong Mã EF trước?

Bất kỳ ý tưởng nào? Đây là mã của tôi và cảm ơn.

MyObjectContext.cs

public class MyObjectContext : DbContext, IDbContext 
{ 
    public MyObjectContext(string connString) : base(connString) 
    { 
    } 
    public DbSet<Product> Products {get;set;} 
    public DbSet<Category> Categories {get;set;} 
    //etc. 

    protected override void OnModelCreating(ModelBuilder modelBuilder) 
    { 
     modelBuilder.Conventions.Remove<PluralizingEntitySetNameConvention>(); 
    } 
} 

Trả lời

83

Bạn đã gỡ bỏ quy ước sai (PluralizingEntitySetNameConvention) cho mục đích này. Chỉ cần thay thế phương thức OnModelCreating của bạn bằng cách bên dưới và bạn sẽ sẵn sàng sử dụng.

using System.Data.Entity.ModelConfiguration.Conventions.Edm.Db; 
... 
protected override void OnModelCreating(ModelBuilder modelBuilder) 
{  
    modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); 
} 

Với Entity Framework 6, trong hồ sơ của bạn mà kế thừa từ DbContext:

using System.Data.Entity.ModelConfiguration.Conventions; 

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
{ 
    modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); 
} 
+15

Tên thay đổi từ CTP5 thành EF 4.1. Điều này bây giờ được gọi là DbModelBuilder. – campo

1

Vị trí của định nghĩa của PluralizingTableNameConvention đã chuyển sang:

using System.Data.Entity.ModelConfiguration.Conventions;

2

Bạn cũng có thể thay đổi giá trị thuộc tính:

Trên menu Công cụ, bấm Tùy chọn. Trong hộp thoại Tùy chọn, mở rộng Công cụ cơ sở dữ liệu. Nhấp vào O/R Designer. Đặt số nhiều tên thành Đã bật = False để đặt trình thiết kế O/R sao cho nó không thay đổi tên lớp. Đặt số nhiều tên thành Enabled = True để áp dụng các quy tắc số nhiều cho tên lớp của các đối tượng được thêm vào O/R Designer.

Các vấn đề liên quan