在EF DbContext POCO生成期间确定模式和表名称

时间:2014-02-11 17:25:07

标签: c# oracle entity-framework-5 code-generation dbcontext

我正在使用Entity Framework 5和“EF 5.x DbContext Generator”(数据库优先)提供的T4代码生成模板。我正在尝试将数据库模式和表名作为属性包含在我的实体类中,例如:

public string _SchemaName {
    get {
        return "SCHEMA NAME HERE";
    }
}

public string _TableName {
    get {
        return "TABLE NAME HERE";
    }
}

有没有人有幸使用上述代码生成模板确定Schema / Table名称?

1 个答案:

答案 0 :(得分:0)

我完全同意@ gert-arnold,如果你想保持代码清晰,你就不应该这样做。使用类属性可能是实现目标的更好方法,但我不了解实体框架中的此类属性,此外,在数据库第一种方法中(假设您不会手动更改生成的类)。

我认为任何方式都不可能 - 不仅因为没有人在两年内回答你的问题,而且因为我可以指定架构的唯一地方(我熟悉)是:

  • .edmx图表属性(或文件:如果您使用文本编辑器打开它,您将看到以下内容 - 请注意XML属性Schema

    <edmx:Edmx ...>
    ...
        <EntityContainer Name="...StoreContainer">
            <EntitySet Name="MyTable1" EntityType="Self.MyTable1" Schema="dbo" store:Type="Tables" />
            ... other tables description
        </EntityContainer>
    ...
    </edmx:Edmx>
    

    查看this question了解详情。

  • 覆盖DbContext的方法OnModelCreating()。这至少在CodeFirst方法中起作用。