小编Jer*_*ell的帖子

实体框架在生成数据库时创建下划线列

我有一个简单的对象模型如下......

public class Product
{
    public long ProductId { get; set; }
    public int CategoryId { get; set; }
    public Category Category { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

public class Category
{
    public long CategoryId { get; set; }
    public List<Product> Products { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

使用EntityFramework生成基础数据库会导致以下模式...

制品

  • 产品编号
  • 类别编号
  • Category_CategoryId

分类

  • 类别编号

Products表中,CategoryId列始终设置为0,而Category_CategoryId列包含产品所属类别的ID.

如何在CategoryId列中设置类别ID 并阻止生成Category_CategoryId列?

entity-framework

7
推荐指数
1
解决办法
1647
查看次数

使用flyway迁移gradle插件管理多个数据库

我们有两个数据库,我们希望使用flyway的gradle插件管理它们的迁移.

我想要一个可以迁移两个数据库的任务.但是,我似乎无法从单个任务中调用两次flywayMigrate任务.

这是我的...

task migrateFoo() {
    doFirst {
        flyway {
            url = 'jdbc:mysql://localhost/foo'
            user = 'root'
            password = 'password'
            locations = ['filesystem:dev/src/db/foo']
            sqlMigrationPrefix = ""
            initOnMigrate = true
            outOfOrder = true
        }
    }
    doLast {
        tasks.flywayMigrate.execute()
    }
}

task migrateBar() {
    doFirst {
        flyway {
            url = 'jdbc:mysql://localhost/bar'
            user = 'root'
            password = 'password'
            locations = ['filesystem:dev/src/db/bar']
            sqlMigrationPrefix = ""
            initOnMigrate = true
            outOfOrder = true
        }
    }
    doLast {
        tasks.flywayMigrate.execute()
    }
}

task migrate(dependsOn: ['migrateFoo','migrateBar']) {}
Run Code Online (Sandbox Code Playgroud)

从命令行显式调用migrateFoo或migrateBar可以正常工作,但是,如果我尝试调用迁移任务,则只更新数据库foo.

调用migrateBar任务的doFirst和doLast任务,但是,来自migrateBar的第二次不调用tasks.flywayMigrate.execute()任务.

我怎样才能让flyway从一个任务中迁移foo和bar?

gradle flyway

7
推荐指数
1
解决办法
3253
查看次数

手动将 varbinary 数据插入 SQL Server

我们有一个用于用户设置的 SQL Server 表。最初的设置是域对象,它们已被序列化为 XML 到表中,但我们最近开始将它们序列化为二进制。

然而,作为我们部署过程的一部分,我们静态地为我们的用户预先填充了预定义设置的表。最初,这就像从自定义数据库中复制 XML 并将其粘贴到在构建数据库后运行的 INSERT 语句中一样简单。但是,由于我们已将设置存储为二进制数据,因此无法使其正常工作。

我们如何从 SQL Server 中的 varbinary 列中提取二进制数据并将其粘贴到静态 INSERT 脚本中?我们只想为此使用 SQL,我们不想使用任何实用程序。

提前致谢,杰里米

sql sql-server

5
推荐指数
1
解决办法
2万
查看次数

将 WHERE 子句添加到外键

我的数据库 (TableA) 中有一个表,它有一列 (TableA.Column1) 只允许来自另一个表 (TableB.Column2) 的某些行的值。这与普通的外键关系非常相似,只是只允许来自 TableB.Column2 的某些行。例如,我可能只允许来自 TableB.Column2 的行,其中 TableB.Column3 > 100;

有没有办法在数据库中表达这种类型的参照完整性?我尝试向外键添加 where 子句,并尝试向 Check 约束添加子查询。我也没有上班。

有人有建议吗?

sql

5
推荐指数
1
解决办法
3431
查看次数

标签 统计

sql ×2

entity-framework ×1

flyway ×1

gradle ×1

sql-server ×1