该项目采用模块化形式。每个模块都位于一个单独的Laibary中。但有时需要在模块之间进行通信。例如,在EF中创建关系。 但是当我做得好的时候,将项目A到B添加引用通常不是问题。 但是当我想将项目引用添加到B时,我会遇到以下错误。
无法添加的参考。将此prpject添加为参考将导致循环依赖
每个模块都是h代码的项目。每个模块都位于一个项目中。 每个模块都有自己的Domain字段。并且定义了它的属性。 (ORM)使用EF。 有时他们会与模块联系。 例如,作为新闻评论的模块希望彼此通信。少数人有关系。
但要插入对此关系的引用让我的其他项目。我遇到这个错误 新闻模块
public class News
{
public string Title { get; set; }
public string Text { get; set; }
public IList<Comment> Comments { set; get; }
}
评论模块
public class Comment
{
public string Title { get; set; }
public string TextComment { get; set; }
public News New { set; get; }
}
如果你能帮助我更好地设计项目,我感激不尽
答案 0 :(得分:2)
我在这里看到两个选项:
答案 1 :(得分:0)
您将两个实体链接在一起,因为我在几乎所有我见过的实体框架教程中都推荐这样做。但是,我只会在小型项目中这样做,您可以将所有域模型放在一个程序集中。
如果您正在开发一个更大的项目,您需要根据子域将不同的程序集中的域模型分开,我不会将这两个实体链接在一起。相反,我会问自己,是负责其评论数据的新闻,还是负责新闻数据的评论?
通过这种方式,您可以找到根实体,根据上下文,它们可以是其中之一。例如,如果您确定新闻是根,则新闻将包含评论,但评论应仅引用新闻ID,因为他们不对新闻数据负责。