试图在这里把握大局。这是一个使用Identity + EF进行用户管理的Web窗体项目。默认项目包含IdentityModels
建议我应该向ApplicationUser
类添加自定义属性的文件,然后使用迁移来更新数据库。我做到了,并且数据库已生成/更新。到目前为止,一切都很好。
现在,我向项目中添加了一个新的EDMX,并将所有数据库表导入其中。显然,这也将身份表也引入到图中,这很好,因为我将添加我的业务域表,并通过模型将它们链接到身份表,然后使用迁移来更新我的数据库。以下是我面临的问题:
AspnetUsers
表相对应;默认ApplicationUser
类还是AspNetUser
EDMX生成的类?我是说迁移将使用这些类中的哪一个来更新表的结构?ApplicationUser
当我运行Add-Migration
和Update-database
命令时,向类中添加新属性似乎没有任何效果。它产生空Up()
和Down()
功能。我知道这些不只是一个问题,但是它们紧密相关,任何尝试入门的人都可能会面对所有这些问题,因此我将它们收集在一个地方,以供将来的读者使用。
好的。在工作了几天之后,我发现了一些可能对将来的读者有用的东西:
正如@Konstantin所说,一般而言,您不应在同一项目中同时使用代码优先和模型优先方法。就我个人而言,我更喜欢首先使用数据库,即创建数据库设计,然后将其导入到我的EDMX模型中。然后,我可以稍后对数据库设计进行更改,并使用“从数据库更新模型...”命令来刷新我的模型。
AFAIK,迁移当前无法与EDMX模型一起使用。这些仅适用于代码优先方法。
首次运行网站时,ASP.NET Identity将自动在数据库中创建所有必需的表。您只需要更正web.config文件中的连接字符串即可。
通常,您应该避免将Identity表引入到EDMX中,但是,如果您确实需要这样做,则不要通过EDMX对这些实体进行更改。只需ApplicationUser
在IdentityModels
文件中使用类即可将自定义属性添加到您的用户类。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句