Код EF4 CTP5 Первый подход игнорирует атрибуты таблицы - PullRequest
0 голосов
/ 20 декабря 2010

Вначале я использую код EF4 CTP5, но у меня проблемы с его работой. У меня есть класс с именем "Company" и таблица базы данных с именем "CompanyTable". Я хочу сопоставить класс Company с таблицей CompanyTable, поэтому используйте такой код:

[Table(Name = "CompanyTable")]
    public class Company
    {
        [Key]
        [Column(Name = "CompanyIdNumber", DbType = "int")]
        public int CompanyNumber { get; set; }

        [Column(Name = "CompanyName", DbType = "varchar")]
        public string CompanyName { get; set; }
    }

Я тогда называю это так:

var db = new Users();
            var companies = (from c in db.Companies
                            select c).ToList();

Однако это ошибки:

Неверное имя объекта 'dbo.Companies'.

Очевидно, что он не уважает атрибут Table в классе, даже если он говорит здесь , что атрибут Table поддерживается. Кроме того, это множественное число имени, которое он ищет (Компании вместо Компании.) Как мне сопоставить класс с именем таблицы?

Ответы [ 2 ]

1 голос
/ 27 декабря 2010

для вашего класса, который наследуется от DbContext, переопределите метод OnModelCreating

protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);

            modelBuilder.Entity<Company>().ToTable("dbo.CompanyTable");
        }
0 голосов
/ 20 декабря 2010

Забыл добавить ссылку на dll ctp5 в мой проект схем, вместо этого он использовал System.Data.Linq.Mapping.

...