在使用DateTime属性保存POCO实体时,我遇到了一些问题.当DateTime属性具有DateTime.MinValue的值时,由于SqlDateTime.MinValue和DateTime.MinValue之间的差异,SaveChanges()失败.
那么该怎么办?
1)我应该在保存实体之前检查DateTime.MinValue吗?
2)我的日期时间POCO属性应该设计成这样的吗?
private SqlDateTime _created;
public virtual DateTime Created
{
get
{
return _created.Value;
}
set
{
_created = value == DateTime.MinValue ? SqlDateTime.MinValue : value;
}
}
Run Code Online (Sandbox Code Playgroud)
/ PW
我有一个类来处理密码更改和交换邮箱的到期检查.我在UserPrincipal上检查LastPasswordSet.
那TDD怎么样?
我想通过编写一些测试来检查我的类是否正确处理了密码检查.但我无法理解我如何模拟UserPrincipal.FindByIdentity(principalContext,[some username]).
如果密码在过去90天内被更改,我即将编写一个返回true/false的方法.所以我想模拟UserPrincipal,这样我就可以在我的测试中设置LastPasswordSet返回值,只是为了检查我要编写的"密码需求更改通知"的逻辑.
在创建NServiceBus SendOnly端点时,目的只是发射并忘记,即只发送一条消息,然后其他人将负责处理它.这似乎是我需要的东西.我不希望总线和系统处理消息之间的任何通信.系统"A"想要通知系统"B"某事.
那么SendOnly端点的创建如果非常简单,那么系统如何监听来自SendOnly端点的消息呢.
我正在尝试在命令行项目中设置一个侦听器来处理消息.消息被发送到队列但它们不会被系统"B"处理.
这是错误的方法吗?对于这种类型的功能,总线是否过度杀伤?
系统A:
public class Program
{
static void Main(string[] args)
{
var container = new UnityContainer();
var bus = Configure.With()
.UnityBuilder(container)
.JsonSerializer()
.Log4Net()
.MsmqTransport()
.UnicastBus()
.SendOnly();
while(true)
{
Console.WriteLine("Send a message");
var message = new Message(Console.ReadLine());
bus.Send(message);
}
}
}
Run Code Online (Sandbox Code Playgroud)
系统B:
class Program
{
static void Main(string[] args)
{
var container = new UnityContainer();
var bus = Configure.With()
.UnityBuilder(container)
.JsonSerializer()
.Log4Net()
.MsmqTransport()
.UnicastBus()
.LoadMessageHandlers()
.CreateBus()
.Start();
Console.WriteLine("Waiting for messages...");
while(true)
{
}
}
}
public class …Run Code Online (Sandbox Code Playgroud)