我正在为microsoft的Pubs数据库子集构建一个Entity Framework模型。我只对出版商和书籍感兴趣,而不是出版商和员工,但出版商和emoloyees表之间存在外键约束。当我从模型中删除雇员实体时,由于外键约束,模型将无法验证。
当该子集链接到具有外键约束的其他选项卡时,如何为数据库的子集创建模型?
因为这是一个演示,我从数据库中删除了有问题的表和约束,但这在生产中不起作用。
答案 0 :(得分:0)
您可以创建相关数据的视图并将模型绑定到该视图。我不是数据库专家,但我以前合作过的DBA推荐这种方法,因为她说数据库服务器开始时视图的密集程度较低。
在发布3.5 SP1之前,我们在LINQ to SQL之上构建了一个DAL(没有DBML映射,但这是另一个故事),它将所有域对象映射到存储过程或视图。这样,DBA对遵循更多设置执行计划的调用感到高兴,并且能够将数据库逻辑封装在代码库之外。
答案 1 :(得分:0)
执行此操作的正确方法是将外键列作为标量属性公开。在this blog post.中有一个完整的解释和可下载的示例代码。您可能会发现帖子的其余部分也很有趣。