虽然嘲笑我的ApplictionDbContext方法有错误AddOrUpdate.
DbSet 在上下文中是虚拟的.
测试方法:
this.db.ExpensesDocuments.AddOrUpdate(doc);
Run Code Online (Sandbox Code Playgroud)
我的测试方法:
[Fact]
public void AddOrUpdateExpenses_Success()
{
// arrange
var mockSet = new Mock<DbSet<ExpensesDocument>>();
var mockContext = new Mock<ApplicationDbContext>();
mockContext.Setup(m => m.ExpensesDocuments).Returns(mockSet.Object);
var provider = new ExpensesProvider(mockContext.Object);
// act
bool result = provider.AddOrUpdateExpenses(new ExpensesDocument());
// assert
}
Run Code Online (Sandbox Code Playgroud)
错误:
结果消息:System.InvalidOperationException:无法在派生的IDbSet类型'Castle.Proxies.DbSet`1Proxy'上调用public,实例方法AddOrUpdate.找不到方法.
我正在使用Moq4框架进行模拟和xUnit测试.
我有问题.我是一个新的开发者,我对我的产品有"年龄标准".
这些选项是:"<24","24 - 35","35 - 45","> 45".
我需要工作的json看起来:
"age": {
"lessThan24": true,
"between24And35": true,
"between35And45": true,
"moreThan45": true
}
Run Code Online (Sandbox Code Playgroud)
我的视图模型:
public class AgeCriterionViewModel
{
public bool? LessThan24 { get; set; }
public bool? Between24And35 { get; set; }
public bool? Between35And45 { get; set; }
public bool? MoreThan45 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我的域名模型:
public class AgeCriterion
{
public int? From { get; set; }
public int? To { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
所以这是我的问题.我需要将viewmodel映射到域模型.但是这些布尔值是可以为空的,所以它们可以是空的,虚假的或真实的.OLSO它可以多选.所以这些选项可能是"lessthan24"和"between35and45"或者全部或者没有.
我考虑建立一些可怕的BIG IF构造.但是我如何检查所有选项?有什么好办法吗?
我现在有这个:
if (age == …Run Code Online (Sandbox Code Playgroud) 我需要构建通知/警报系统的计划。
我有一个名为“Campaign”的对象,它有“Status”。状态可以是接受、拒绝、补充、工作等。我想在状态更改时发送通知/警报。
在我的门户中发送电子邮件通知和警报。
我不想在我操作 Campaign 的一个控制器中完成所有操作。所以我在考虑委托和活动。但最后我不知道该怎么做。
我在想什么:
领域模型:
class Campaign {
CampaignStatus Status { get; set;}
}
abstract class Notification {
// properties
}
class EmailNotification {
// properties specific for email
}
class Alert {
// properties specific for alerts
}
class CampaignAlert {
// properties specific for campaign alerts
}
Services:
INotificationsService {
Send();
}
IAlertsService : INotificationsService {
Get(); // I need showing list of alerts too
GetAll();
Update(); // for updating info if alert was viewed. …Run Code Online (Sandbox Code Playgroud) 我有课:
Sponsored { int Order };
Run Code Online (Sandbox Code Playgroud)
我收集了它:
IEnumerable<Sponsored> sponsored;
Run Code Online (Sandbox Code Playgroud)
我想检查Order这个集合是否是唯一的。
我可以通过 做吗FluentValidation?
我有:
SponsoredValidator : AbstractValidator<IEnumerable<Sponsored>>
Run Code Online (Sandbox Code Playgroud)
和
SponsoredValidator : AbstractValidator<Sponsored>
Run Code Online (Sandbox Code Playgroud)
@Edit:它应该通过 ValidationAttribute 与 WebAPI POST 方法连接
[Validator(typeof(SponsoredValidator))]
Run Code Online (Sandbox Code Playgroud) 我通过Visual Studio Code快速更改代码.如你所知它没有内置编译器所以我通过CMD使用CSC.
它只适用于(代码<= C#4.6和代码<= .NET 4.5),因为我的CSC版本.
并且存在问题,因为我在新的C#6.0和.NET 4.6中编写并且无法通过CSC编译.我已经安装了VS 2015与.NET 4.6和compilie通过VS 2015工作良好.
我无法在我的计算机中找到CSC版本.NET 4.6中的CSC.我在Windows注册表中使用.NET 4.6(注册表).
我需要为~20行创建临时表或变量.
DECLARE @UserDailyStatsForCategories TABLE (
CategoryId uniqueidentifier not null,
[Date] date not null,
[Unique users] int not null,
[Returning users] int not null,
[New users] int not null
);
insert into @UserDailyStatsForCategories (CategoryId, [Date], [Unique users], [Returning users], [New users])
select
@CategoryId,
eventdate,
count(*),
count(case when cnt > 1 then 1 end),
count(case when cnt = 1 then 1 end)
from
(
select cast(eventtime as date) as eventdate, userid, count(*) as cnt
from telemetrydata
where [dbo].[TelemetryData].[DiscountId] = @DiscountId
and [dbo].[TelemetryData].[EventName] …Run Code Online (Sandbox Code Playgroud) 我想对计数函数的结果求和。
计数结果如下:
1. 16
2. 32
3. 0
4. 12
Run Code Online (Sandbox Code Playgroud)
我想总结一下。
我试过
select sum(count(...)) ...
Run Code Online (Sandbox Code Playgroud)
它不起作用。还有以下内容:
select sum(du) from (select ... as du ..)
Run Code Online (Sandbox Code Playgroud)
也不工作。