Events
現在、、、コンテンツページなど、いくつかの基盤となるデータベーステーブルがありShop
Products
、それぞれに名前、サイトのフロントエンドの詳細ページ、サムネイルURL、アクティブフラグなどの共有プロパティがあります。
これらのオブジェクトを一般的に渡すために使用できる共有プロパティのクラスを作成する最も効率的な方法を見つけようとしています。例として、検索結果ページがあります。検索は、元々複数のテーブルにまたがっているデータのコレクションの名前に対して実行できます。
これらすべてのクラスがクラスから発生しているため、継承の使用に苦労してLINQ
います。ニーズに合わせてデータコンテキストデザイナの編集を開始したくありません。
現在、私の各部分クラスにLINQ classes
はSharedObjectメソッドが含まれています。
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";
}
....
これは適切な解決策のように聞こえますか?