一年前提出的这个问题是类似的: 实体框架4是否支持像NHibernate这样的id值的生成器?
但我想知道的是,代码首先是CTP是否增加了对身份生成策略的支持.如果没有,有没有人知道EF中的一个很好的扩展点来实现类似的东西?
我目前正在使用使用GUID作为标识符的模型类.使用EF插入时,它们保留其Guid.Empty初始值.我知道您可以为数据库中的列设置默认值,newid()但这会破坏客户端身份生成的目的.
实体框架是否还不够成熟,无法在分布式,断开连接的系统中使用?
我正在使用EF 4.1 CodeFirst来创建我的数据库.似乎EF正在创建具有聚簇索引的所有主键,这在一种情况下对我们来说不是最佳的(可能更多情况).有没有办法告诉EF使用主键作为非聚集索引生成此表?
当然我们可以在创建数据库之后使用自定义脚本手动完成它,但是我们有很多外键指向这个表,如果有更好,更直接的方法,这将是一个非常好的解决方案数据库创建期间已经相同.任何帮助赞赏
我来自一个nhibernate背景,我想知道如何在serer端自动生成Guid而不是在数据库端进行往返?
在流利的nhibernate中它很简单
Id(x => x.Id).GeneratedBy.GuidComb();
Run Code Online (Sandbox Code Playgroud) 如何newsequentialid()在PK列中使用默认值?
我有这个注释:
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
Run Code Online (Sandbox Code Playgroud)
但是这会产生随机的guid,我希望有顺序的guid.
我可以手动将数据库设置newsequentialid()为默认值,但是没有更好的选择吗?或者EF团队忘记了这个选项?
我正在使用fluentmigrator向表中添加新列.然后,我想要使用该列的唯一值更新表中的每一行.
目前我使用时:
Update.Table("Foo").InSchema("dbo").Set(new { Bar = Bar.Generate() }).AllRows();
Run Code Online (Sandbox Code Playgroud)
它为所有行提供相同的值.
我如何确保它为每一行调用该方法?
我想使用EF4将实体映射到具有顺序guid作为PK的表.根据这篇文章http://leedumond.com/blog/using-a-guid-as-an-entitykey-in-entity-framework-4/ EF4支持这个,但使用edmx映射.有没有办法在使用EF4 Code First时使用服务器生成的Guids,如果是,如何使用?
目前,我已经创建了一个基本实体类型,我的所有实体都将从中派生出来.
public abstract class BaseEntity
{
/// <summary>
/// Key Field for all entities
/// </summary>
///
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid Id { get; set; }
/// <summary>
/// Date entity was created
/// </summary>
public DateTime DateCreated { get; set; }
/// <summary>
/// Last date Modified
/// </summary>
public DateTime DateModified { get; set; }
/// <summary>
/// keep track of Row Version used for concurrency
/// </summary>
[Timestamp]
public Byte[] RowVersion { get; set; }
}
} …Run Code Online (Sandbox Code Playgroud)