为什么1753?他们对1752有什么看法?我伟大伟大伟大曾伟大的曾祖父会非常生气.
我正在使用Entity Framework 4.1中引入的DbContext和Code First API.
该数据模型使用的基本数据类型,如string和DateTime.我在某些情况下使用的唯一数据注释是[Required],但这不是任何DateTime属性.例:
public virtual DateTime Start { get; set; }
Run Code Online (Sandbox Code Playgroud)
该的DbContext子类也很简单,看起来像:
public class EventsContext : DbContext
{
public DbSet<Event> Events { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Event>().ToTable("Events");
}
}
Run Code Online (Sandbox Code Playgroud)
在初始化设置日期在模型中有意义的值在今年或明年.
但是,当我运行初始化程序时,我收到此错误context.SaveChanges():
将datetime2数据类型转换为日期时间数据类型会导致超出范围的值.该语句已终止.
我不明白为什么会发生这种情况,因为一切都很简单.我也不确定如何解决它,因为没有edmx文件可以编辑.
有任何想法吗?
我想知道,为什么SqlDateTime.MinValue与DateTime.MinValue不一样?
我Entity Framework 4.1首先在代码中有一个简单的代码:
PasmISOContext db = new PasmISOContext();
var user = new User();
user.CreationDate = DateTime.Now;
user.LastActivityDate = DateTime.Now;
user.LastLoginDate = DateTime.Now;
db.Users.Add(user);
db.SaveChanges();
user.Avatar = new Avatar() { Link = new Uri("http://myUrl/%2E%2E/%2E%2E") };
db.SaveChanges();
db.Users.Add(new User() { Avatar = new Avatar() { Link = new Uri("http://myUrl/%2E%2E/%2E%2E") } });
db.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
问题是我收到了错误
保存不公开其关系的外键属性的实体时发生错误.EntityEntries属性将返回null,因为无法将单个实体标识为异常的来源.通过在实体类型中公开外键属性,可以更轻松地在保存时处理异常.有关详细信息,请参阅InnerException.
在
db.Users.Add(new User() { Avatar = new Avatar() { Link = new Uri("http://myUrl/%2E%2E/%2E%2E") } });
db.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
我不明白为什么类似的操作有效.我的模型或ef-code-first首先出现了问题吗?
public class Avatar
{
[Key]
public int Id { …Run Code Online (Sandbox Code Playgroud) 我首先在我的asp.net mvc应用程序中使用EF代码.这是我的代码:
Request.RequestDate = DateTime.Now;
Run Code Online (Sandbox Code Playgroud)
RequestDate的类型是我的数据库中的datetime.这是我使用上面代码时发生的错误!:
将datetime2数据类型转换为日期时间数据类型会导致超出范围的值.
请帮我.谢谢.
c# entity-framework sql-server-2008 ef-code-first entity-framework-4.3
我正在尝试将datetime2转换为datetime,以便仅使用SQL或SSIS在不同源之间创建标准以下面的SQL查询为例:
SELECT CAST(offer_start_date AS datetime)
FROM [ODS].[macaclient_offers]
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:'不允许从数据类型datetime2到timestamp的显式转换.
此外,我确实设法使用简单的强制转换将datetime2转换为日期.
使用SQL Server 2008或SSIS将datetime2转换为datetime的正确方法是什么?
gilibi
DateTime我在我的一个类中定义了一个 Nullable属性:
public DateTime? ControlDate { get; set; }
Run Code Online (Sandbox Code Playgroud)
当使用 EF 6 CodeFirst 从我的模型生成数据库 (SQL Server 2008) 时,我得到:

问题是,当我保存实例时,ControlDate=null出现以下异常:
conversion of a datetime2 data type to a datetime data type
resulted in an out-of-range value
Run Code Online (Sandbox Code Playgroud)
我读过多篇相关的帖子和文章,说这种情况通常发生在您定义不可为空的 DateTime 属性并尝试在之前未设置有效日期的情况下保存它时,有些人建议将该属性设置为可空,以防属性值可以为空。 null(这是我的特殊情况)。
我的问题是:当我的属性和列类型可为空时,为什么 EF 会尝试设置默认日期。Null 应该是一个有效值,并且应该一直流到数据库,中间没有任何其他转换。
这里有一篇相关文章:Conversion of a datetime2 data type to a datetime data type results out-of-range value
编辑::这是一个非常相似的问题。非常详细的解释,如果有人感兴趣的话。
经验教训: 只是想澄清一下,仔细观察后,我发现这是我这边的问题。在保存我的对象之前,它被设置为:
myObject.ControlDate = new DateTime()
Run Code Online (Sandbox Code Playgroud)
在检查时,它显示了默认的不兼容日期1/1/0001。众所周知,这是导致此异常的原因。所以我的结论是:
DateTime将在 SQL Server …c# ×4
datetime ×4
.net ×3
sql-server ×2
dbcontext ×1
localization ×1
sql ×1
ssis ×1
t-sql ×1
types ×1