Итак, вот краткий обзор. Я использую Code First, новую базу данных.Невозможно правильно создать контроллер с помощью платформы Entity Framework
Как вы видите, я создал модель AccountModels (то же самое имя, как по умолчанию в случае, если кто запутался). Это выглядит следующим образом:
public class User
{
public int UserId { get; set; }
public string Username { get; set; }
public string Password { get; set; }
public string Email { get; set; }
public virtual ICollection<Stat> Stats { get; set; }
}
public class Stat
{
public int StatId { get; set; }
public string Age { get; set; }
public string Height { get; set; }
public string Weight { get; set; }
public bool Sex { get; set; }
public int UserId { get; set; }
public virtual User User { get; set; }
}
public class BodylogDbContext : DbContext
{
public DbSet<User> Users { get; set; }
public DbSet<Stat> Stats { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
Database.SetInitializer<BodylogDbContext>(null);
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
}
Теперь, когда я пытаюсь добавить контроллер я не могу выбрать свой класс модели, AccountModel. Насколько я помню, я должен был бы выбрать класс модели, а затем в следующем поле я выбираю класс данных данных, который есть - BodylogDbContext (Bodylog.Models), и все должно быть установлено. Но я не могу, почему?
И вот моя строка соединения.
<add name="BodylogDbContext"
connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Bodylog.mdf;Integrated Security=True"
providerName="System.Data.SqlClient"
/>
выглядит хорошо для меня. 'AccountModels' выглядит так, что это просто имя файла, а не класс. В раскрывающемся списке вы увидите имена публичных классов. 'Stat' и' Пользователь' есть. Что вы ожидаете от падения? –
Я думал, что это должно показать AccountModels? Мне кажется неправильным, что я должен выбрать 'User' или' Stat', так как они такие же, если вы знаете, что я имею в виду? ehh:/ – brk
Что вы подразумеваете под «тем же»? Извините, я точно не знаю, что вы имеете в виду. ;) Физический файл, в который вы помещаете свои классы, не имеет никакого отношения к тому, как скомпилирован код. В этом случае, после компиляции, C# не знает ваш файл AccountModels.cs. Выпадающий список показывает отраженный вид скомпилированной сборки. –