c# - SubSonic 3.0 简单存储库向对象添加 DateTime 属性

标签 c# asp.net-mvc subsonic subsonic3

我正在试用 SubSonic,看看它是否可以用于生产项目。我似乎偶然发现了一个关于在创建新列时使用默认值(String 和 DateTime)更新数据库的问题。

如果将 DateTime 或 String 的新属性添加到对象。

public class Bug
{
    public int BugId { get; set; }
    public string Title { get; set; }
    public string Overview { get; set; }
    public DateTime TrackedDate { get; set; }
    public DateTime RemovedDate { get; set; }
}

当运行将那种类型的对象添加到数据库的代码时

var repository = new SimpleRepository(SimpleRepositoryOptions.RunMigrations);           

repository.Add(new Bug()
{
    Title = "A Bug",
    Overview = "An Overview",
    TrackedDate = DateTime.Now
});

它创建以下 sql:

UPDATE Bugs SET RemovedDate=''01/01/1900 00:00:00''

出于某种原因,它在字符串或 DateTime 的每一端添加双 2 单引号。

这会导致以下错误:

System.Data.SqlClient.SqlException - Incorrect syntax near '01'

我正在连接到 SQL Server 2005

除了这个问题之外,我会感谢任何帮助,我发现 SubSonic 是一个很棒的产品。


我已经创建了我的错误的截屏 here :

最佳答案

这是一个错误,双引号是在几个版本之前引入的。我相当确定这已得到修复> 3.0.0.3 所以如果你想捕获当前的掉落,它应该被处理。

很抱歉造成混淆 - 但正如您所发现的,您可以在创建时设置值,这将解决问题。此外,您可以按照 andymeadows 的建议进行操作,这将使该字段可以为空(这可能更准确)。

无论如何 - 我们很快就会解决这个问题 :)。我正在努力找工作,没有太多的时间花在合并分支上:(

关于c# - SubSonic 3.0 简单存储库向对象添加 DateTime 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1393862/

相关文章:

c# - 为什么我的 SqlParameter 没有被识别?

c# - Socket.io - 每 34 毫秒接收一次数据

asp.net - 当未提供路由名称时,使用 RouteLink 生成 url 的方法是什么?

c# - 无法使用 C# 在 Selenium WebDriver 中使用现有的 Firefox 配置文件

c# - 匹配两个具有不同文件名的相同图像

c# - Asp.net Core 电子邮件确认有时会显示 InvalidToken

javascript - DataSourceRequest 将属性添加到 GridView 剑道

asp.net-mvc - ASP.Net MVC FormCollection TO 模型绑定(bind)效率

c# - 在不使用 app.config 的情况下添加连接字符串

亚音速和乐观并发