Я пытаюсь создать базу данных с использованием подхода Code First. Когда я запускаю следующий код, я получаю следующее исключение. Что-то не так в полях, которые я определил? Как мы можем преодолеть это?
Исключение:
При обновлении записей произошла ошибка. Подробнее см. Внутреннее исключение.
Внутреннее исключение:
"Недопустимое имя объекта 'dbo.Dinners'.
Примечание. У меня нет такой таблицы (Dinners) в databse. Код должен создавать таблицы. Я просто дал строку подключения для идентификации сервера, как указано в EF Code First: Не удается подключиться к SQL Server. Должен ли я изменить строку соединения?
Соединения Строка:
string connectionstring = "Источник данных =; Начальный каталог = БиблиотекаReservationSystem; Интегрированная безопасность = True; Время ожидания подключения = 30";
База данных LibraryReservationSystem - это уже существующая база данных. В нем нет таблиц. Я ожидаю, что EF создаст таблицы.
Строка подключения, которую я скопировал из рабочего приложения LINQ 2 SQL. Нужно ли мне вносить какие-либо изменения в EF?
UPDATE
Когда я включил следующий код, исключение изменилось. Теперь он говорит - "Недопустимое имя объекта" dbo.Dinner ".". Сейчас он жалуется на обеденный стол; а не обеденный стол.
protected override void OnModelCreating(DbModelBuilder modelbuilder)
{
modelbuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
Оригинальный код
static void Main(string[] args)
{
string connectionstring = "Data Source=.;Initial Catalog=LibraryReservationSystem;Integrated Security=True;Connect Timeout=30";
using (var db = new NerdDinners(connectionstring))
{
var product = new Dinner { DinnerID = 1, Title = 101 };
db.Dinners.Add(product);
int recordsAffected = db.SaveChanges();
}
}
using System.Data.Entity;
namespace LijosEF
{
public class Dinner
{
public int DinnerID { get; set; }
public int Title { get; set; }
}
public class RSVP
{
public int RSVPID { get; set; }
public int DinnerID { get; set; }
public virtual Dinner Dinner { get; set; }
}
//System.Data.Entity.DbContext is from EntityFramework.dll
public class NerdDinners : System.Data.Entity.DbContext
{
public NerdDinners(string connString): base(connString)
{
}
public DbSet<Dinner> Dinners { get; set; }
public DbSet<RSVP> RSVPs { get; set; }
}
}
ССЫЛКА