【发布时间】:2023-04-02 20:58:02
【问题描述】:
所以这里是一个快速的概述。我正在使用 Code First,新数据库。
如您所见,我创建了一个 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和User在那里。您希望下拉列表中的内容是什么? -
我在想它应该显示 AccountModels?对我来说,我必须选择
User或Stat似乎是错误的,因为它们相同,如果你明白我的意思吗?嗯:/ -
“相同”是什么意思?抱歉,我不太明白你的意思。 ;) 放置类的物理文件与代码的编译方式无关。在这种情况下,编译后,c# 不知道您的 AccountModels.cs 文件。下拉列表显示已编译程序集的反射视图。
标签: c# asp.net-mvc entity-framework poco