【发布时间】:2013-08-27 11:24:50
【问题描述】:
我首先遇到了实体框架代码的问题。
我的 SQL 数据库中有一个名为“myId”的现有列。我像这样将它添加到我的班级:
public virtual int? myId { get; set; }
我运行:update-database -connectionStringName '[SiteName]' -force
所有运行都成功,但是当我查看数据库时,我看到现有列已更改为“myId1”。我不确定为什么我现有列的名称被更改而不使用?如您所见,它在名称后附加了一个“1”......?
任何想法都将不胜感激!
【问题讨论】:
-
如果列仍然存在,为什么要更新数据库? update-database 的目标之一是更新数据库模式以使 i 符合模型。在您的情况下,模型中的新字段 => 架构中的新字段。由于名称不可用,因此创建了一个新名称。
-
如果我不运行更新,我会得到以下信息...“支持 '[DBCContext]' 上下文的模型在创建数据库后发生了变化”
-
最初是如何创建数据库的?也就是说,为什么你有一个 myId 列?
-
该列是别人添加的(这里不是问),没有出现在实体中。我猜该列是手动添加到数据库中的。
-
这就是重点,可以放弃吗?顺便说一句:int 上的 virtual 对我来说似乎没用。虚拟用于相关实体。并且您的模型应该有一个使用 myId 作为键的相关实体...
标签: c# entity-framework code-first