如果我有一个如下所示的查询:
var forms = repo.GetForms().Where(f => f.SubForms.Any(sf => sf.Classes.Any(c => c.TermId == termId)));
Run Code Online (Sandbox Code Playgroud)
从这里你可以看到我的架构如下:
SubForm有许多Class有很多Term.
我想要的是:
所有SubForms与他们Classes在一个特定的Term.
现在的情况是,我得到的所有SubForm有任何Class特定Term.这意味着SubForm与所有孩子一起回来,Class而不仅仅是与孩子有关的孩子Term.
例如.我有2个术语,每个术语有2个类的子表单.此查询返回4个类而不是该特定术语中的2个类.
有什么Include('Expression')我可以用来说我只想根据条件包含所有类吗?或者我的查询错了?
可能重复:
javascript的null合并运算符?
在C#中,您可以这样做:
var obj = newObject ?? defaultObject;
Run Code Online (Sandbox Code Playgroud)
这表示,分配newObject到obj如果没有别的空分配defaultObject.我如何用javascript写这个?
我的项目由服务和存储库构成(所有存储库共享数据库上下文).在我的一个服务层中,我有一个使用存储库写入数据库的异步方法.在此方法可以使用之前,Web请求将完成并处理上下文.我试图理解这个答案中所述的NamedScopes.我似乎还无法理解如何实现它.我将展示我的项目是如何构建的,并希望有人可以在代码级别帮助我.
绑定
private static void RegisterServices(IKernel kernel)
{
//dbcontext
kernel.Bind<EntityDatabaseContext>().ToMethod(context => new EntityDatabaseContext()).InRequestScope();
//unit of work
kernel.Bind<IUnitOfWork>().To<UnitOfWork>().InRequestScope();
//repositories
kernel.Bind<IRepository<Account>>().To<Repository<Account>>().InRequestScope();
//services
kernel.Bind<IAuthenticationService>().To<AuthenticationService>().InRequestScope();
}
Run Code Online (Sandbox Code Playgroud)
AuthenticationService使用构造函数注入
public AuthenticationService(UnitOfWork unitOfWork, IRepository<Account> accountRepository){}
Run Code Online (Sandbox Code Playgroud)
我的AuthenticationService中的一个方法
//this is a background process
public Task SomeMethodAsync(string text)
{
//spin it off into a new task
return Task.Factory.StartNew(() => SomeMethod(text));
}
Run Code Online (Sandbox Code Playgroud)
SomeMethod利用accountRepository.如果需要更多信息,请告诉我.请帮我解决线程问题,如果NamedScopes是解决方案,我该如何在我的情况下实现它?
基本上,正在执行后台进程,并且它正在使用由于请求范围而由ninject处理的上下文.
我目前在我的asp.net webapi项目中使用ninject.mvc3,它工作正常.现在我想结合过滤器属性,但BindFilter并BindHttpFilter从缺少IKernel使用接口时,NinjectWebCommon静态类方法.如果我添加了Ninject.Web.WebApi包,那么它在那里但项目没有运行(问题在这里,解决方案说不Ninject.Web.WebApi推荐)所以我把它删回了.
我也完全按照这个github wiki而仍未this.BindFilter找到.我有最新的nuget包; Ninject(3.0.1.10),Ninject.Web.Common(3.0.0.7),Ninject.MVC3(3.0.0.6)
BindFilter或BindHttpFilter在哪里?有什么变化吗?如何在asp.net web api中绑定过滤器属性?有这么多的库和项目,文档没有告诉你当前工作的是什么以及什么是弃用的....
我相信我已经在jquery中看到了一些这样的例子.但对我来说,以下代码不起作用.firebug调试器告诉我:'位置未定义'.你能告诉我这是否可行?
function ResolveGeoCode() {
var Location;
Location.Ad1 = "Hello ";
Location.Ad2 = "World";
return Location;
}
var loc = ResolveGeoCode();
var String1 = loc.Ad1; //This contains "Hello "?
var String2 = loc.Ad2; //This contains "World"?
Run Code Online (Sandbox Code Playgroud)
可以给我正在寻找的这类功能一个名字吗?
谢谢.
我在这里找到了这个算法.
我有一个问题,我似乎无法理解如何设置和传递我的启发式功能.
static public Path<TNode> AStar<TNode>(TNode start, TNode destination,
Func<TNode, TNode, double> distance,
Func<TNode, double> estimate) where TNode : IHasNeighbours<TNode>
{
var closed = new HashSet<TNode>();
var queue = new PriorityQueue<double, Path<TNode>>();
queue.Enqueue(0, new Path<TNode>(start));
while (!queue.IsEmpty)
{
var path = queue.Dequeue();
if (closed.Contains(path.LastStep))
continue;
if (path.LastStep.Equals(destination))
return path;
closed.Add(path.LastStep);
foreach (TNode n in path.LastStep.Neighbours)
{
double d = distance(path.LastStep, n);
var newPath = path.AddStep(n, d);
queue.Enqueue(newPath.TotalCost + estimate(n), newPath);
}
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
如您所见,它接受2个函数,一个距离和一个估计函数.
使用曼哈顿启发式距离函数,我需要采用2个参数.我是否需要修改他的来源并将其更改为接受TNode的2个参数,以便我可以将曼哈顿估算值传递给它?这意味着第4个参数将如下所示:
Func<TNode, …Run Code Online (Sandbox Code Playgroud) 我们有大约3人在TFS的一个项目上工作.我们公司将我们的TFS项目设置为单一结账.但有时,我们有一个人检查某些文件,解决方案文件等.启用多个检出是不好的做法,如果我们不小心覆盖了别人的代码,让合并或差异工具处理问题?
我已经在某个地方看到这一切都是关于良好的沟通,并允许差异工具处理这些问题,但我们的雇主建议使用单一结账.
2个问题.我们应该启用多个结账吗?如果是这样,我们如何启用多个结账?
嗨,我已经在网站上工作了很长一段时间,改进了代码等.我刚刚注意到,在较小的屏幕上,白色背景的高度并没有超出所有内容.
设置min-height: 100%;并且height: 100%;似乎没有解决它,你认为这可能是由于许多内容浮动的事实?
任何建议将不胜感激.
我正在使用NLog登录到文件.有没有办法将它配置为在当前达到某个阈值(例如~50mb)时创建新的日志文件?可以从配置文件或代码完成吗?
我有一个C#和F#项目.两者都应该是服务层代码.但有时,两个项目的代码都需要访问另一个项目中的代码.
每个项目都可以毫无问题地引用其他项目吗?
c# ×4
asp.net-mvc ×2
javascript ×2
ninject ×2
a-star ×1
css ×1
f# ×1
height ×1
heuristics ×1
html ×1
layout ×1
nlog ×1
operators ×1
tfs ×1