我希望有一个IDataService,然后我可以用不同的服务换出来进行模拟或用于设计时数据。这是一个好方法,还是我只为自己创造问题。
public interface INorthwindContext
{
public IDomainContext Context;
}
我尝试在Silverlight项目中使用部分类来实现如下界面:
public partial class NorthwindContext : INorthwindContext
{
}
现在我可以创建一个DataService或TestDataService等,如下所示:
public class DataService : IDataService
{
public INorthwindContext Context { get; set; }
}
我的INorthwindContext:
编辑:除非我将DomaincContext中的所有方法添加到此接口,否则我将失去需要的数据功能。每次我向服务添加新的entites时,我还必须手动更新界面。
public interface INorthwindContext
{
EntitySet<Category> Categories { get; }
EntityQuery<Category> GetCategoriesQuery();
EntityQuery<Product> GetProductsQuery();
EntityQuery<Region> GetRegionsQuery();
EntityQuery<Shipper> GetShippersQuery();
EntityQuery<Supplier> GetSuppliersQuery();
EntityQuery<Territory> GetTerritoriesQuery();
EntitySet<Product> Products { get; }
EntitySet<Region> Regions { get; }
EntitySet<Shipper> Shippers { get; }
EntitySet<Supplier> Suppliers { get; }
EntitySet<Territory> Territories { get; }
}
This was very helpful和http://www.nikhilk.net/NET-RIA-Services-ViewModel-Pattern-2.aspx