我一直在努力尝试将新的ASP.NET身份扩展到我的下一个Web应用程序,我在Visual Studio 2013 Profissional中打开了一个新的空 Web项目,并添加了MVC 5像往常一样组装。
我在VB.NET(Code-First)中编写了以下内容
Imports System.ComponentModel.DataAnnotations
Imports System.ComponentModel.DataAnnotations.Schema
Imports Microsoft.AspNet.Identity.EntityFramework
Imports System.Data.Entity
Partial Public Class MyAppContext
Inherits IdentityDbContext(Of User)
Public Sub New()
MyBase.New("ConnStr")
End Sub
Public Overridable Property Items As DbSet(Of Item)
End Class
Partial Public Class User
Inherits IdentityUser
<Required>
Public Property Name As String
Public Property Items As ICollection(Of Item) = New HashSet(Of Item)
End Class
Partial Public Class Item
<Key> <DatabaseGenerated(DatabaseGeneratedOption.Identity)>
Public Property ID As Integer
<Required>
Public Property Name As String
<Required>
Public Property UserID As String
<ForeignKey("UserID")>
Public Overridable Property User As User
End Class
我认为代码非常简单,我正在尝试创建继承自“ IdentityUser ”并添加一对多的“用户”类与另一个名为“ Item ”的类的关系,当然我必须扩展泛型类“ IdentityDbContext(Of User)”。
然后我想使用脚手架选项“带视图的MVC 5控制器,使用实体”为我的“用户”和“项”类添加一个控制器框架”。
错误运行所选代码生成器时出错:'值不能为空。参数名称:codeType'
我希望您知道这是一个干净的设置,适用于Visual Studio 2013,一个干净的项目,而且脚手架对于没有Identity继承事物的当前模型非常有用。
如果您已成功在机器上重现问题,请与我们联系。
答案 0 :(得分:1)
我想告诉您,在我将确切的代码转换为C#后,它才有效!...
这似乎是与vb.net相关的问题(内置的t4模板)。
所以这是一个错误,我认为这就是答案。
如果有人为此找到解决方法,请发帖,我会接受它作为答案。