我有一個類庫和一些模型類和一個DbContext類(所有這些類都是公共的)。此類庫由MVC-5應用程序引用。如何使用控制器腳手架的引用程序集
是否有可能在該MVC-5應用程序中使用該引用的類庫中的模型類來構建控制器的腳手架?
當我使用控制器 - 添加 - 控制器 - MVC控制器與意見,使用實體框架然後在對話框中兩個組合框的Model類和數據上下文類不包含任何項目。當我從引用的類庫中填寫完全限定名的類時,那麼按鈕仍然是禁用的。我究竟做錯了什麼?
我有一個類庫和一些模型類和一個DbContext類(所有這些類都是公共的)。此類庫由MVC-5應用程序引用。如何使用控制器腳手架的引用程序集
是否有可能在該MVC-5應用程序中使用該引用的類庫中的模型類來構建控制器的腳手架?
當我使用控制器 - 添加 - 控制器 - MVC控制器與意見,使用實體框架然後在對話框中兩個組合框的Model類和數據上下文類不包含任何項目。當我從引用的類庫中填寫完全限定名的類時,那麼按鈕仍然是禁用的。我究竟做錯了什麼?
腳手架編譯爲DLL文件引用的程序根本不起作用。有必要添加對包含模型類的項目的引用。然後它按預期工作。 這是一個錯誤或者特徵?
它看起來像一個錯誤,甚至在.net核心重新實現:https://github.com/aspnet /腳手架/問題/ 251 – balint
通過一些調整,您可以使用腳手架引用外部dll(例如實體框架項目)。
爲此,您需要創建一個繼承EF表類的類。爲了工作,您需要使用正確的模式和表名稱在類的頂部使用[Table]屬性,否則腳手架將創建一個新表。
另外請確保您使用「新」關鍵字並重載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; }
}
}
您是否嘗試過清潔和重建項目? –
我已經嘗試幾乎所有可能的:)。目前爲止沒有任何成功。 – dee
看起來沒有人有答案!我面臨同樣的問題! –