我正在学习领域驱动设计,但是有些实际问题令我感到困惑,我认为看到一些好的样本可能会被清除.
有没有人知道一些很好的工作代码示例,它们可以很好地建模基本的DDD概念?
特别感兴趣
将.sln文件提交给源代码控制是最佳做法吗?什么时候适当或不恰当?
更新 答案中有几个好点.谢谢你的回复!
version-control projects-and-solutions visual-studio-2008 visual-studio
如果我的目标setter是私有的,我可能想使用目标对象的构造函数映射到该对象.你会如何使用Automapper做到这一点?
这是一个实用的领域驱动设计问题:
从概念上讲,我认为在获得定义之前我会得到Aggregate.
我有一个Employee实体,它已表现为聚合根.在业务中,一些员工可以针对他们记录与工作相关的违规行为:
员工-----*违规
由于并非所有员工都受此限制,我认为违规行为不会成为员工总数的一部分,对吗?
因此,当我想与Employees及其相关的违规行为合作时,某个服务是否有两个独立的Repository交互?
最后,当我添加一个Violation时,是Employee Entity上的那个方法吗?谢谢您的帮助!
我们的项目已经有了StyleCop配置.我正在使用ReSharper,我希望能够让R#使用StyleCop设置.
我知道你可以使用StyleCopForResharper在Resharper中构建设置并将它们导出为StyleCop配置,但是你可以反过来让Resharper使用现有的StyleCop配置吗?
我将IList绑定到GridView.IMyInterface看起来像
public interface IMyInterface: IHasTotalHours, IHasLines
{
DateTime GoalStartDate { get; set; }
DateTime GoalEndDate { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我将一个实例绑定到Grid,如下所示:
IList<IMyInterface> instance= GetMyData();
myGrid.DataSource = instance;
myGrid.DataBind();
Run Code Online (Sandbox Code Playgroud)
将此绑定到网格时,显示在网格中的唯一成员是IMyInterface的直接成员:GoalStartDate和GoalEndDate.
这是为什么?如何让网格显示其继承的其他接口的成员?
更新 继承的接口定义简单的数据属性,如
public interface IHasTotalHours
{
string Description { get; set; }
int Hours{ get; set; }
}
public interface IHasLines
{
double TotalLines { get; set; }
double LinesPerHour { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
有一个实现IMyInterface的类:
public class MyClass : IMyInterface
{
public string Description { get; set; }
public …Run Code Online (Sandbox Code Playgroud) data-binding reflection interface multiple-inheritance typedescriptor
给出以下对象:
public class Product {
string Name {get;}
int Quantity {get;}
}
Run Code Online (Sandbox Code Playgroud)
使用Linq,在获得给定数量List<Product>的总和之前,我将如何查询>=?换句话说,如果我的列表看起来像
Name Quantity
-----------------
prod1 5
prod2 6
prod7 7
Run Code Online (Sandbox Code Playgroud)
我想查询List并拉出实例,直到得到Sum >=8.在这种情况下,我将获得列表中的前两项.如果我想要总和>= 12,我会得到这三个.
我知道我可以写一个循环为我做这个,但我幻想有一些光滑的单行使用Linq来实现同样的事情.
谢谢
我刚开始在测试项目中使用MVCContrib网格.我很难找到有关如何使用它进行编辑/更新/删除的信息.
任何人都可以向我指出如何将行放入编辑模式的信息,或者如果该网格没有这样的东西,请讨论在MVC中编辑列表数据的最佳实践.
由于还没有Linq to DB2(来自IBM!),并且我想在我的代码中处理IQueryables或IEnumerables,我如何将DataTable转换为IQueryable?还是IEnumerable?
我有一个接口和一个匹配数据表中的列的类...
IQueryable<IMyData> GetAS400Data(..parameters..)
{
DataSet d = GetData();
...
//Some code to convert d to IQueryable<IMyData>
}
Run Code Online (Sandbox Code Playgroud)
DataTable.Rows不支持.AsQueryable,因为MSFT猛拉它,所以我不知道该怎么做.
我有一个Linq查询,看起来像这样:
var query = from x in table where SomeFunctionReturnsBool() select;
private bool SomeFunctionReturnsBool()
{
return true;
}
Run Code Online (Sandbox Code Playgroud)
这返回和异常说"SomeFunctionReturnsBool没有支持的SQL转换".我知道这是因为它想将"SomeFunctionReturnsBool"视为一个表达式来评估为SQL,但它不能.
虽然这个Linq查询并不复杂,但真正的问题是.我怎样才能完成我在这里尝试做的事情,即打破查询的各个部分,希望它更具可读性?
杰夫
更新 好的答案.我现在正在尝试使用表达式,但是这段代码让我"无法解析方法Where(lambda表达式)":
var query = from x in table where SomeFunctionReturnsBool() select x;
private Expression<Func<EligibilityTempTable, bool>> SomeFunctionReturnsBool
{
return (x) => true;
}
Run Code Online (Sandbox Code Playgroud) linq ×2
aggregate ×1
asp.net-mvc ×1
automapper ×1
c# ×1
constructor ×1
data-binding ×1
datatable ×1
entities ×1
ienumerable ×1
interface ×1
iqueryable ×1
linq-to-sql ×1
mvccontrib ×1
reflection ×1
resharper ×1
root ×1
stylecop ×1