[英]What is the correct pacakge versions to use MySQL in .NET 6.0 and EF Core?
[英]What is the replacement for EF Designer in .NET 6.0
我在 .NET 框架 WPF 應用程序中成功使用了 EF。
現在我正在遷移到 .NET 6.0 wpf 應用程序,這里不可能使用 EF 設計器。
我所說的 EF Designer 的意思是:
自動生成的上下文 class 如下所示:
public partial class NEVA_TELECOM_DBEntities : DbContext
{
public NEVA_TELECOM_DBEntities()
: base("name=NEVA_TELECOM_DBEntities")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public virtual DbSet<Position> Positions { get; set; }
public virtual DbSet<Employee> Employees { get; set; }
public virtual DbSet<Event> Events { get; set; }
public virtual DbSet<sysdiagram> sysdiagrams { get; set; }
public virtual DbSet<AvailableModule> AvailableModules { get; set; }
public virtual DbSet<Абоненты> Абоненты { get; set; }
public virtual DbSet<Заявки> Заявки { get; set; }
public virtual ObjectResult<string> sp_GetEmployeePosition(string number)
{
var numberParameter = number != null ?
new ObjectParameter("Number", number) :
new ObjectParameter("Number", typeof(string));
return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<string>("sp_GetEmployeePosition", numberParameter);
}
我不需要自己編寫連接字符串的地方。
在哪里我也可以使用 Linq :
(from p in db.AvailableModules
where p.Access_Code == AcessCODE
select p.Available_Module).ToList();
那么是否有一個框架可以在 .NET 6.0 中完成所有這些工作? 或者有沒有辦法在 .NET 6.0 中使用 EF 設計器?
不。EF Core 不使用設計器使用的 EDMX,並且沒有新的設計器。 您可以在 .NET 核心中使用舊的 EF6,但 .NET 核心項目中不支持設計器。 您可以在單獨的項目中使用設計器,並將生成的 DbContext 包含在您的 .NET 核心項目中。 請參閱https://docs.microsoft.com/en-us/ef/ef6/what-is-new/#ef-designer-support
但是 IMO 不值得使用舊的 EF 來保留設計師。
EDMX 不符合協作友好設計的趨勢,因為開發和源代碼控制越來越多地轉向在線工具,並且越來越多的軟件被開發為開源軟件。 它在 EF 核心中被遺棄了(或者更好的是:沒有重建)並且它不會很快回到那里 - 如果有的話。
即使只有兩個人接觸了源代碼,這個單一的 EDMX 文件也是一場災難。 我親身經歷過。 類似的巨石存在並被遺棄。 已經出現了其他設計/架構,允許以最小的合並沖突風險進行修改,例如垂直切片(順便說一句,不僅僅是因為這個原因)。
你可能不同意,但根據我的經驗,最好順應這種趨勢(如果你不能打敗它們,就加入它們)。 不要試圖找到類似的單一替代方案。 首先開始工作代碼。 也許有遷移,但不一定(遷移也不是協作友好的)。 數據庫腳本和 EF class 文件的同步維護一點也不難,而且當數據庫變得更復雜時,IMO 是go的唯一方法。 新類可以由有用的工具(如EF Core Power Tools )生成,然后手動重新生成或維護。
我們喜歡使用數據庫項目作為單一的事實來源,它還可以在源代碼控制中實現詳細的更改跟蹤(可以說比遷移要好得多)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.