我有一个包含一些模型类和一个DbContext类的类库(所有这些类都是公共的)。该类库由MVC-5应用程序引用。
是否可以使用该引用类库中的模型类来构建该MVC-5应用程序中的控制器?
当我使用控制器 - 添加 - 控制器 - 带视图的MVC控制器时,使用实体框架然后在对话框中为模型类和数据上下文组合框class 不包含任何项目。当我从引用的类库中填写类的完全限定名称时,仍然禁用添加按钮。我做错了什么?
答案 0 :(得分:1)
通过一些调整,您可以使用脚手架引用外部dll(例如实体框架项目)。
为此,您需要创建一个继承EF表类的类。为了工作,您需要使用具有正确模式和表名的类顶部的[Table]属性,否则scaffolding将创建一个新表。
另外请确保使用" new"关键字和重载id。您将需要使用[Key]属性(如果尚未在原始dll的EF表中定义)。
最后创建一个新的dbcontext,并确保在web.config中使用连接字符串id。
这应该允许您在Web项目中引用表和上下文。
这是我的代码(非常简单),希望这有帮助。
namespace ConsoleAdmin.Models
{
[Table("ntf.tblNotification_ntf")]
public class Notification : tblNotification_ntf
{
[Key]
public new int notificationId { get; set; }
}
public class NotificationDbContext : DbContext
{
public NotificationDbContext(): base("name=bd_Soquij_logEntities") { }
public DbSet<Notification> Notifications { get; set; }
}
}
答案 1 :(得分:0)
将引用的程序集编译为dll-file的脚手架根本不起作用。有必要添加对包含模型类的项目的引用。然后它按预期工作。 这是一个错误还是一个功能?