我们目前有几个基础数据库表,如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