我目前陷入了这个解决方案的设计.
数据层设计包括以下内容:
食谱(父级高级对象)
语言详细信息(名称,语言描述)(很多)
标题(很多)
步骤(很多)
配料(很多)
数量(很多)
程序(很多)
笔记(很多)
我遇到的挑战是如何创建一个数据访问设计,当从WCF SaveRecipe(配方)方法填充对象时,该设计将添加/删除数据库中的子对象?
这一切都源于管理层要求我们在我们的应用程序中添加通信层,现在我们的UI耦合到我们的业务层,而BL直接耦合到DAL,我们基本上需要在BL和DAL之间注入WCF .
我在这篇帖子中读过,使用L2S对WCF来说不是一个好主意,但由于设计不是新的,我们必须使用这种类型的方法,然后一旦我们可以重构大量的方法就离开它UI工作.
如果您尝试使用WCF发送内容,我建议您创建要在域中移动的数据模型.据我所知,你不能序列化IQueryable对象,但你可以创建一组Linq填充然后序列化的类.例如:
[DataContract] public class Recipe { [DataMember] public string Name { get; set; } [DataMember] public string Description { get; set; } [DataMember] public ListIngredients { get; set; } }
然后填写
Listrecipes = (from r in dc.recipe select new Recpie { Name = r.name, Description = r.description, Ingredients = (Linq code to make list of ingredients) }).ToList();
然后用WCF发送列表就变得小菜一碟了.