我首先使用Entity Framework 4.3.1代码进行显式迁移.如何在实体配置类或迁移中添加列的描述,以便最终作为SQL Server中列的描述(例如2008 R2)?
我知道我可以编写一个DbMigration
类的扩展方法,该方法将迁移事务中的sql迁移操作注册sp_updateextendedproperty
或sp_addextendedproperty
过程调用,并在迁移Up
方法中创建表后调用该扩展.但是,我还没有发现一种优雅的内置方式吗?拥有迁移的更改检测逻辑可以获取的属性并在scaffolded迁移中生成appropritate方法调用会很好.
我正在使用Entity Framework 4.3,首先是代码迁移和手动迁移.我正在尝试映射使用两个自定义鉴别器字段的TPH(每层次表)设置.一个用于鉴别器本身,另一个用于软删除(很像NH类映射中的"where"选项).完全相同的设置在另一个在EF 4.2上运行的项目中运行正常.
尝试使用NuGet控制台中的"add-migration"命令添加迁移时出现错误.我已经尝试了定义表名的所有组合 - 类的属性,"OnModelCreating"方法,EntityTypeConfiguration类等.我之前没有涉及复杂层次结构映射的迁移工作得很好.
我偶然发现了EF 4.3中的一些重大变化吗?
代码:
//---- Domain classes ---------------------
public abstract class ParentClass
{
public string ParentString { get; set; }
}
public class Foo : ParentClass
{
public string FooString { get; set; }
}
public class Bar : ParentClass
{
public string BarString { get; set; }
}
//---- Mapping configuration --------------
public class ParentConfiguration : EntityTypeConfiguration<ParentClass>
{
public ParentConfiguration()
{
Map<Foo>(m =>
{
m.Requires("IsActive").HasValue(1);
m.Requires("Type").HasValue("Foo");
})
.ToTable("Parent");
Map<Bar>(m =>
{
m.Requires("IsActive").HasValue(1);
m.Requires("Type").HasValue("Bar"); …
Run Code Online (Sandbox Code Playgroud) .net c# entity-framework database-migration entity-framework-4.3