我有一个实体(实际上有几个)我希望在创建时根据自定义逻辑分配一个键值。我知道我可以在实体构造函数中完成它,但理想情况下我想将它作为创建新实体时数据上下文逻辑的一部分。
我找到了如何关闭自动生成,但我宁愿做的是用我自己的逻辑替换自动生成,理想情况下由C#代码处理(我已经看过通过存储过程执行此操作的技术,我“我宁愿不要使用。”
这甚至可以集中进行吗?
答案 0 :(得分:2)
自动生成发生在服务器端,而不是由EF完成。这是表键列的设置。因此,EF不生成任何密钥 - 如果启用自动生成,则这是生成密钥的数据库,如果自动生成关闭,则负责生成密钥的用户。如果您不想在保存更改时生成密钥,则可能需要覆盖SaveChanges并为所有新添加的实体生成密钥。