是否可以在where(LINQ)中包含一个子句,但前提是它的"NOT"为空?
即
where c.Code == sCode && p.Code == code
Run Code Online (Sandbox Code Playgroud)
在这种情况下,变量(标准c#)被称为代码...如果它的非空,那么上面的地方很棒..但如果它是空的那么我不想在其中包含
即
where c.Code == sCode
Run Code Online (Sandbox Code Playgroud)
在SQL中它的完成就像这样
AND ( ( @code = '' )
OR ( @code <> ''
AND C.Code = @code
)
Run Code Online (Sandbox Code Playgroud) 我正在尝试开发一个类似于VS 2010中的"注释"工具栏按钮的扩展,但我想将所有文本标记为已注释,并在其上方添加注释.
这是一个例子.我知道这很简单,但它更容易.我的想法是有一些额外的工具栏按钮来标记不再使用的代码,标记有错误的代码......以及类似的东西......这可以在任务窗口中选取,因为它以TODO开头:
// TODO MARTIN CODE NO LONGER USED
/*if (myItem)
{
txtTest.Enabled = false;
txtTest1.Value = 0;
btnOk.Enabled = false;
}*/
Run Code Online (Sandbox Code Playgroud)
我认为我需要使用:
DTE.ActiveDocument
Run Code Online (Sandbox Code Playgroud)
和:
(((TextDocument)myDoc).Selection.Text).
Run Code Online (Sandbox Code Playgroud)
然后再次写出代码,我需要做什么?
我有2个类,两个被称为相同的"产品",1个类是我的,另一个属于其他人.
我在代码中遇到编译错误,因为看起来有些代码试图使用"我的"类而不是"他们"的产品.
我通过在使用该类的行上添加名称空间来临时修复此问题.
我有他们班级的"使用".
那么解决这个问题的方法是什么,留下我的前缀或重命名命名空间......应该先来?
我想这给了我另一个问题......如果我解决这个问题并且我需要引用我的类,那么我将需要前缀.
任何建议解决这个问题的最佳方法都会非常有帮助.
嗨,您好,
我只是设置了Enterprise Library 5的日志记录应用程序块部分.我认为我已经完成了它,但它没有记录到事件日志,它在write方法上出错并给我以下异常.
The type LogWriter cannot be constructed.
You must configure the container to supply this value.
Run Code Online (Sandbox Code Playgroud)
任何人都可以给我一张支票或告诉我我错过了什么..
首先,我使用winforms应用程序在Windows 7中运行.
这是我创建日志的方法,您可以看到write方法.
public class Logger : ILogger
{
public void SendTest(string test)
{
LogEntry log = new LogEntry();
log.EventId = 300;
log.Message = test;
log.Categories.Add("testing");
log.Severity = TraceEventType.Information;
log.Priority = 5;
Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write(log);
}
}
Run Code Online (Sandbox Code Playgroud)
我的所有配置都是使用entlib5编辑器而不是手工编写的.并确认这是entlib.config所在的路径
filePath="C:\myapp\entlib.config" />
Run Code Online (Sandbox Code Playgroud)
这是我的app.config,它指向我的entlib.config
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="enterpriseLibrary.ConfigurationSource" type="Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ConfigurationSourceSection, Microsoft.Practices.EnterpriseLibrary.Common, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" />
</configSections>
<enterpriseLibrary.ConfigurationSource selectedSource="System Configuration Source">
<sources>
<add name="System …Run Code Online (Sandbox Code Playgroud) .net logging enterprise-library application-blocks logging-application-block
我正在尝试进行连接,然后进行分组,我返回的分组信息很棒!就像一个魅力,但我仍然需要访问分组以外的值,如果这是有道理的..
我在stackoverflow上找到了一个例子,这可能更好地解释了它
var query = from c in context.Contacts
join o in context.Orders on c.Id equals o.CustomerId
select new
{
Contact = c,
Order = o
} into ContactAndOrder
group ContactAndOrder by ContactAndOrder.Order.Id into g
select new
{
g.Key,
ContactWhatever = g.Sum(co => co.Contact.Whatever),
OrderWhatever = g.Sum(co => co.Order.Whatever)
};
Run Code Online (Sandbox Code Playgroud)
现在这似乎工作得很好,问题是在我的情况下co.Order.Whatever是一个字符串所以我得到一个错误说不能将字符串转换为int,这我理解为聚合函数Sum期望一个int ....
我的问题是,是否有一个聚合函数或类似的东西我可以得到co.Order.Whatever的值(在我的情况下是一个字符串)
问题在于,一旦完成了小组,我就失去了"c"和"o"
我希望有人能帮帮忙.
提前致谢
我使用路由设置了一个asp.net web api项目(它与Mvc项目完全相同) - 因此我有以下内容
routes.MapHttpRoute(
name: "API Default",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
Run Code Online (Sandbox Code Playgroud)
所以一切都按照我想要的方式工作....我输入api/Products/15它到达我的产品控制器,传入15作为id.
大.
我还有2个控制器,1个叫做UploadsController,1个叫做DownloadController.这些提供上传和下载(GET/PUT等)
现在我不希望他们被原规则接受(见上文)
但我想要的是使用这两个网址来访问它们
/ api/Transport/Uploads/15/api/Transport/Downloads/15
我已经通过了15作为身份证,可能不会发生在现实生活中...只是它有利于示范:-)
现在运输不存在所以我可以做以下事情
routes.MapHttpRoute(
name: "API Default",
routeTemplate: "api/Transports/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
Run Code Online (Sandbox Code Playgroud)
我认为有效...
但问题是,如果我这样做
/ api/Uploads/15 - 这也会被我不想要的原始规则所捕获..
我希望通过虚假的"传输"访问上传和DOwnloads控制器,而不是没有传输
有人可以帮忙吗?
提前致谢
asp.net-mvc asp.net-routing asp.net-mvc-routing asp.net-web-api
我试图找出如何创建路由配置,以便所有URL都将转到相同的VIEW(页面).
当然,如果我这样做的话
/产品/编号
然后,这将在Products控制器中查找.
无论URL是什么,我都想总是转到我的MainController和相同的动作
这可能吗?
提前致谢
我一直在写一个angularjs应用程序,我有一些控制器,我已经放在1 JS文件中.我希望有一些更模块化的东西,并将我的控制器分成自己的文件.
我想到了RequireJS,但这是推荐的方式吗?或者angularjs是否提供了其他内容以及任何解释位置的线索?
也有所有这些文件进行调试是伟大的,但一旦生产建设需要确实angularJS提供某种合并的模块为1个文件,结果最小化?
如果有人能解释最好的方法,那将是非常有帮助的.
谢谢
我试图访问注入构造函数的模拟(通过Nsubstitute)类.
我使用以下代码
var fixture = new Fixture()
.Customize(new AutoNSubstituteCustomization());
var sut = fixture.Create<MyService>();
Run Code Online (Sandbox Code Playgroud)
sut是成功创建的,并且在"MyService"的构造函数上注入了一个名为"IFileUtils"的接口的模拟版本.
但我需要访问它,所以阅读后我相信我需要冻结对象,所以我可以这样访问它
var fileUtilMock= fixture.Freeze<Mock<IFileUtils>>();
Run Code Online (Sandbox Code Playgroud)
但是我认为这段代码是Moq语法,因为"Mock"无法找到.
通常要创建一个类的Nsubstitute,您可以执行以下操作
var fileUtilMock= Substitute.For<IFileUtils>();
Run Code Online (Sandbox Code Playgroud)
但当然这并没有冻结,所以它没有被使用并注入构造函数中.
有人可以帮忙吗?
我偶然发现了Restangular来拨打休息服务.它运作良好,并返回一个承诺.我需要能够拥有调用块.原因是新页面重新加载我在技术上没有登录,但我可能有一个存储在cookie中的令牌.我想针对休息服务验证此令牌.问题是我需要阻止它.
如果发生超时或者它无效,我可以将用户视为未经过身份验证.
这是想要阻止的原因是我想使用$ location.path将它们重定向到新的URL而不是有效的令牌.
这不会发生在特定路由上,因此我无法使用阻塞的解析.它在技术上发生在每条路线上 - 我使用$ on.$ routeChangeStart并检查内部变量是否得到LoggedIn,如果没有登录,我检查存储的令牌.
这在每次页面刷新时发生,但在应用程序内导航时不会发生.
我想要获得的影响是Gmail的工作原理.
期待任何人对此有任何见解
谢谢
c# ×3
angularjs ×2
asp.net-mvc ×2
linq ×2
.net ×1
amd ×1
autofixture ×1
conflict ×1
dynamic ×1
group-by ×1
logging ×1
mocking ×1
namespaces ×1
nsubstitute ×1
requirejs ×1
restangular ×1
sql ×1
vsx ×1
where-clause ×1