我們目前有幾個基礎數據庫表,如Events
,Shop
Products
Products
,內容頁面等,每個都有共享的屬性,例如在網站的前端有名稱,詳細信息頁面,縮略圖URL,一個活動的標誌等C#類型轉換/ Linq
我試圖找出最有效的方式來創建一類共享屬性,可用於傳遞這些對象一般。一個例子可能是搜索結果頁面。可以根據最初實際跨越多個表的數據集合的名稱進行搜索。
由於所有這些類都來自LINQ
類,所以我正在努力使用繼承,我不想開始編輯datacontext設計器以適應我的需要。
目前我LINQ classes
每個部分類包含一個共享對象方法:
public partial class Event
{
public SharedObject SharedObject
{
get
{
return new SharedObject(this);
}
}
...
這是重複事件,網絡購物產品等共享對象類包含以下內容:
public class SharedObject
{
public string Reference { get; set; }
public string Name { get; set; }
public string ImageURL { get; set; }
public bool IsVisible { get; set; }
public bool IsAdminVisible { get; set; }
public string FrontEndDetailsURL { get; set; }
public string AdminDetailsURL { get; set; }
public object OriginalObject { get; set; }
public string ObjectDescription { get; set; }
public SharedObject(object originalObject)
{
if (originalObject.GetType() == typeof(Event))
{
Event eventx = (Event)originalObject;
Reference = eventx.Reference;
Name = eventx.Name;
ImageURL = eventx.ImageURL;
IsVisible = eventx.IsActive && !Event.IsArchived;
IsAdminVisible = !eventx.IsArchived;
FrontEndDetailsURL = eventx.DetailsURL;
AdminDetailsURL = eventx.AdminDetailsURL;
OriginalObject = originalObject;
ObjectDescription = "Event";
}
....
這是否像一個合適的解決方案?
謝謝Amiram我現在已經採取了這種方法,但刪除了所有設置聲明,因爲在這種情況下它們不是必需的。 – 2012-08-09 10:07:10