在我的公司,DBA更新我们的SQL Server表以添加列等,当将这些更改推送到prod时。在我的场景中,我们有一个现有的AspNetUsers表和其他与身份相关的表。这个现有的AspNetUsers表增加了额外的列(FirstName, LastName, Joined date), id列被更改为int。
我正在写一个新的MVC Web Api (VS 2013)在这个现有的数据库之上,我开始使用默认的Web Api模板,我真的很喜欢的身份。我不能使用Code-First,因为这些表已经存在,并且已经有了这些额外的字段。我不会也不能让我的代码通过Nuget更新DB,我也不负责创建DB脚本。
我的问题是:我怎么能让我的代码工作与现有的AspNetUsers表,有额外的字段,我需要在注册用户时捕获?我已经将新属性添加到ApplicationUser: Identity User中的IdentityModel.cs中。我还将这些字段添加到我的AccountController的Register方法和accountindingmodel的RegisterBindingModel类中。当注册用户时,我得到的错误是"无法为EntityType Phoenix.WebAPI.Models找到映射和元数据信息。"ApplicationUser",我不知道如何处理这个,因为我不允许触摸DB,不想使用代码优先。
我们来看看:
在我的公司,DBA更新我们的SQL Server表以添加列
就我对IT职位的理解而言,DBA不应该这样做。数据库建模是分析员的工作。
我不能使用Code-First,因为表已经存在了这些附加字段
那是不对的。您可以在现有数据库中使用Code-First,它也比EDMX好用得多。EDMX已在EF7停用。
但是,如果您真的不想使用Code-First,可以看看这个库https://github.com/kriasoft/AspNet.Identity,它可能会有帮助。
您可以尝试使用Fluent API将您的实体映射到数据库表。流利的api