Сначала я использую Entity Framework Code.Обычно у меня нет проблем, но для базы данных, с которой я работаю, я получаю ошибки, которые не могут найти таблицу в базе данных SQL Server.Вот как выглядит мой класс:
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
public class CustomApp_User
{
[Key]
public int UserID { get; set; }
[MaxLength(50)]
public string Username { get; set; }
[MaxLength(250)]
public string Email { get; set; }
public DateTime DateCreated { get; set; }
public DateTime DateModified { get; set; }
}
В базе данных у меня есть таблица с именем "CustomApp_Users", соответствующая приведенному выше.Обратите внимание, что в конце он имеет букву "s".
А затем у меня есть:
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Data.Entity;
public class CustomAppDB : DbContext
{
public DbSet<CustomApp_User> CustomApp_Users { get; set; }
}
Я ожидал, что EF codefirst для множественного числа, чтобы он нашел "CustomApp_Users" в базе данных, так как этокак это обычно работает.Но вместо этого я получаю сообщение об ошибке:
Недопустимое имя объекта 'dbo.CustomApp_User'.
Похоже, оно не является множителем имени таблицы.Я не могу понять, почему.Отличие этой базы данных в том, что первичные ключи не соответствуют обычному соглашению, поэтому я использую аннотацию [Key].
Я знаю, что если я буду использовать аннотацию [Table] для своего класса, она будет работать: [Table ("CustomApp_Users")]
Но я бы хотел выяснить, почему плюрализация не работает так, как я думал.