我正在開發一個帶有 MS-SQL 資料庫的 ASP .NET Core 5 MVC 應用程式,EF Core 是我的 ORM(采用代碼優先的方法)。
目前我正在重新設計資料庫,我有多個共享大量相同屬性的表,我希望能夠從不同的表中添加/洗掉屬性,但只能在代碼中的一個地方進行。
由于.NET沒有多類繼承,我想到了以 "級別 "繼承類的想法。
class Purchase : PriceDatesAndContent
{
//特定的購買屬性。
}
class Product : PriceDatesAndContent ?
{
//特定產品屬性。
}
class PricesDatesAndContent : PriceAndDates ?
{
public string Name { get; set ; }
public string Description { get; set; }
}
class PricesAndDates : Prices
{
public DateTime someDate1 { get; set; }
public DateTime someDate2 { get; set; }
// ...; }
}
class Prices
{
public double Price1 { get; set; }
public double Price2 { get; set; }
然而,我并不確定這是否真的是一個在我看來很好的主意,我很想聽聽你的意見,或者你甚至有其他解決這種情況的方法?
非常感謝您!
uj5u.com熱心網友回復:
然而,我并不確定這是否真的是一個在我看來很高明的想法
只要你的基類沒有被映射為物體,那么擁有一個深度的繼承層次結構是沒問題的。 但是以這種方式對您的類進行建模只是為了節省您的打字量,這是很不尋常的。
使用介面來模擬常見的屬性模式可能會更好,這樣你就不必將它們安排在一個單一的層次結構中。
public interface IHasName { public string Name { get; set; } public string Description { get; set; } } public interface IHasPricespublic double Price1 { get; set; } public double Price2 { get; set; }轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/309861.html
標籤:
