我的Repository类中有一个fallowing方法:
public virtual IEnumerable<T> GetAll(Expression<Func<T, bool>> where = null, Func<IQueryable<T>, IOrderedQueryable<T>> orderBy = null, Expression<Func<T, object>>[] includeProperties = null)
Run Code Online (Sandbox Code Playgroud)
我想问你,当我传递一些具体的lambda表达式时,如何嘲笑它可以返回一些特定的值?
SettingsRepository.Setup(
r =>
r.GetAll(
It.IsAny<Expression<Func<Settings, bool>>>(),
It.IsAny<Func<IQueryable<Settings>, IOrderedQueryable<Settings>>>(),
It.IsAny<Expression<Func<Settings, Object>>[]>())).Returns((Settings[])null);
Run Code Online (Sandbox Code Playgroud)
无论你将使用什么lambda,这都将返回null.
我正在寻找类似的东西:
Expression<Func<Settings, bool>> asdasd = s => s.SubmissionId==1;
SettingsRepository.Setup(
r =>
r.GetAll(
It.Is<Expression<Func<Settings, bool>>>(asdasd),
It.IsAny<Func<IQueryable<Settings>, IOrderedQueryable<Settings>>>(),
It.IsAny<Expression<Func<Settings, Object>>[]>()))
.Returns(() => new[] { new Settings { Submission = ValidSubmission } });
Run Code Online (Sandbox Code Playgroud)
最好的问候,天使
编辑:谢谢你的答案!伊利亚·帕尔金,你说得对!它应该是这样的:
It.Is<Expression<Func<Settings,bool>>>(ex=>ex == null)
Run Code Online (Sandbox Code Playgroud)
"ex"指向表达,我应该作为一个论点传递,对吧?lambda表达式是您预测的类型的委托.现在它正在运作!
SettingsRepository.Setup(
r =>
r.GetAll(
It.Is<Expression<Func<Settings,bool>>>(ex=>ex == null),
It.IsAny<Func<IQueryable<Settings>, IOrderedQueryable<Settings>>>(),
It.IsAny<Expression<Func<Settings, Object>>[]>()))
.Returns(() => …Run Code Online (Sandbox Code Playgroud) 的文献和修订是驻留在我们的域逻辑的特定层的两个对象.
该文件表示周围的任何材料一张纸,你能想到的抽象.也就是说 - 每份合同,发票或图纸都可以称为文件.
另一方面,文档的材料表示是修订:建筑工程师在现场接收的纸张列表表示设计者创建的文档的修订版.如果由于错误或需求更改而必须更改图形中的某些内容,则会在现场显示新修订 - 同一文档的修订版#2.
该版本可能包含指向其他文件 ; 因此,我们可以描述汽车,车门,发动机,车轮等之间的关系,以及每个元素独立演变的可能性,同时保持与其他元素的联系.
显示典型的DAG:
我设法使用C#Graph API将所有顶点和边插入到CosmosDB中.我设法遍历图表并执行简单查询,以便查找汽车有多少修改,或者发动机在最初创建时是否有涡轮增压器.但是,我正在努力编写一个复杂的查询,它只返回每个部分或汽车的最新版本,或者返回汽车状态的查询,直到2016-08-10.
当遍历访问顶点的后代(它的"out()")时,我找不到一种方法来获取最近创建的并继续遍历而不挖掘其他顶点.如果你建议我一个表达式,我只会从图片中返回彩色顶点,我将不胜感激.