【发布时间】:2014-05-08 16:57:42
【问题描述】:
我一直在努力使用新的 ASP.NET 标识,试图将其扩展为我的下一个 Web 应用程序,我在 Visual Studio 2013 Professional 中打开了一个新的 empty Web 项目,并添加了 MVC 5像往常一样组装。
我在 VB.NET(代码优先)中编写了以下内容
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”继承的“User”类并添加一对多与另一个名为“Item”的类的关系,当然我必须扩展通用类“IdentityDbContext(Of User)”。
然后我想为我的“User”和“Item”类添加一个带有视图的控制器,使用脚手架选项“MVC 5 Controller with views, using Entity框架”。
错误运行所选代码生成器时出错:'值不能为空。参数名称:codeType'
我想让你知道,这是 Visual Studio 2013 的一个干净设置,一个干净的项目,而且脚手架在没有身份继承的情况下非常适合当前模型。
如果您已在您的机器上成功重现该问题,请告诉我。
【问题讨论】:
-
我想让您知道,在我将代码转换为 C# 之后,它可以工作了!...这似乎是一个与 vb.net 相关的问题(可能与与 vb 相关的 t4 模板有关) 。网)。 ((但确定我仍在寻找答案))
-
@ChaithanyaM 感谢您的贡献,但链接似乎在谈论不同的事情。
-
如果有人可以调试此路径上的 t4 模板:C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\Web\Mvc\Scaffolding\模板\MvcControllerWithContext
标签: vb.net entity-framework visual-studio-2013 asp.net-mvc-5 asp.net-mvc-scaffolding