我试图将TimeSpan Code First属性映射到SQL服务器.Code First似乎在SQL中将其创建为Time(7).但是.Net中的TimeSpan可以处理超过24小时的更长时间,并且我需要存储超过24小时的事件长度.使用Code First处理此问题的最佳方法是什么?
我有这个班级和表格:
public class Foo
{
public Guid Id {get;set;}
public string Name {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
create table Foo
(
id uniqueidentifier primary KEY DEFAULT (newsequentialid()),
name nvarchar(255)
)
Run Code Online (Sandbox Code Playgroud)
问题是,当我尝试保存新的foo时,第一个使用了0000-000-00 ... id和第二个也是,所以我得到了约束异常
有谁知道修复?
code-first entity-framework-4 ef4-code-only entity-framework-ctp5
我在Visual Web Developer 2010 Express中工作,并使用Entity Framework代码优先CTP.我能够使用新的SQL Server CE执行此操作,但我无法找到与SQL Server Express一起使用的连接字符串.
这个使用SQL Server CE beta,工作正常(数据库是在模型更改时创建和重新创建的).
<add name="TrempimModel"
connectionString="data source=|DataDirectory|TrempimModel.sdf"
providerName="System.Data.SqlServerCe.4.0" />
Run Code Online (Sandbox Code Playgroud)
这个,我从aspnetdb连接字符串复制,
<add name="TrempimModel"
connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;
AttachDBFilename=|DataDirectory|TrempimModel.mdf;User Instance=true"
providerName="System.Data.SqlClient" />
Run Code Online (Sandbox Code Playgroud)
在启动时给出以下消息:
无法完成操作.提供的SqlConnection未指定初始目录
那么如何使它与SQL Server Express一起使用?
entity-framework connection-string code-first sql-server-express
所以我设法让Code First运行,它运行良好.
由于我仍在开发应用程序,因此数据库的结构尚未最终确定,因此我需要实现迁移.
我关注了官方博客帖子并获得了Update-Database命令.
但是,这只会更新数据库的SQLExpress版本.数据库的生产版本在Azure上,我在运行时指定连接字符串,因此Update-Database命令不起作用.
所以我的最后一个问题是:如何将自动迁移应用于在运行时指定连接字符串的生产数据库?
有没有办法在Entity Framework 4.3.1中禁用迁移?我从项目和我的数据库中生成的表中删除了迁移文件夹,但它不起作用!你怎么能删除迁移?
我知道这不是最理想的解决方案,但我需要在我的一个EF Code First对象中添加一个自动递增字段.此列ID不是Id,这是一个guid.
反正我是在代码中定义自动递增字段,还是自己创建列并在DB中定义其自动递增工作?
我正在使用Entity Framework v4.我遵循了书呆子晚餐教程中的说明.我目前处于开发模式(未发布到任何更高的环境),并希望在每个新部署上重新创建表,因为模型仍然具有高度不稳定性,而且我不关心保留数据.但是,这不会发生.不会创建/修改表,也不会发生数据库中发生的任何事情.如果我使用程序包管理器命令移动到迁移模型:enable-migrations,add-migration(initial),这将起作用并使用我的迁移.但是,由于我还不想进行粒度迁移并且只想要我的初始创建脚本,因此我不得不每次都删除迁移文件夹,重做命令(enable-migrations,add-migration)并手动删除数据库我改变了什么.
如何首先获得代码的放置/创建行为?
使用Entity Framework Code First CTP5,如何创建INT的主键列,而不是标识列
最好不要使用属性.
是否有工具将edmx转换为代码优先?我知道有一段时间在CTP中出现了一个,但我找不到与此相关的任何更新.
在MSDN论坛上有一个人写了他自己的(现在还没有),但EF团队没有.
我使用EF Core 2.0,Code first和Fluent API 搜索stackoverflow以获得生成多对多关系的正确解决方案.
一个简单的场景是:
public class Person
{
public Person() {
Clubs = new HashSet<Club>();
}
public int PersonId { get; set; }
public virtual ICollection<Club> Clubs { get; set; }
}
public class Club
{
public Club() {
Persons = new HashSet<Person>();
}
public int ClubId { get; set; }
public virtual ICollection<Person> Persons { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
如果我错了,请纠正我,但我老实说没有找到一个问题,其中包含如何使用所描述的工具进行详细说明.谁能解释一下这是怎么做到的?