首页 新闻 会员 周边 捐助

EF edmx 生成的时候如何带上 MSSQL表的架构

0
悬赏园豆:100 [已解决问题] 解决于 2016-09-09 16:24

数据库里有个表名是一样的.在不同的架构下面

EF使用的是db first. 更新edmx的时候不会自动带上 table 的架构前缀,会自动在重名的表上加上数字标识.

请问有什么办法可以带上table架构前缀

table :

Sales.Goods
Stock.Goods

DbContext:

1 public virtual DbSet<Good> Goods { get; set; }
2 public virtual DbSet<Goods1> Goods1 { get; set; }
咖菲猫的主页 咖菲猫 | 初学一级 | 园豆:28
提问于:2016-09-09 14:50
< >
分享
最佳答案
0

自己改T4模版.在edmx文件下有一个.tt文件.点开就可以改.点右键可以调试.

收获园豆:40
吴瑞祥 | 高人七级 |园豆:29449 | 2016-09-09 15:08

已经在调试了. EntitySet.Schema 为null . 看了下所有的table架构都为null .请问你对这个玩意了解吗.

咖菲猫 | 园豆:28 (初学一级) | 2016-09-09 15:33
其他回答(3)
0

你是想同事用两个库?

收获园豆:10
顾晓北 | 园豆:10898 (专家六级) | 2016-09-09 14:58

不啊.  同一个库下面. 2张表名字是一样的. 在不同的架构下面

Sales.Goods
Stock.Goods 这样.

支持(0) 反对(0) 咖菲猫 | 园豆:28 (初学一级) | 2016-09-09 15:09

@咖菲猫: 

[Table("ad_order")]
    public partial class AdOrder : Lind.DDD.Domain.IEntity
    {
        [Column("id")]
        public int Id { get; set; }
    
        [Column("order_name")]
        public string OrderName { get; set; }
    }

我们的ef的Entity类似这样,就是说Table名字是可以自己写的?

支持(0) 反对(0) 顾晓北 | 园豆:10898 (专家六级) | 2016-09-09 15:12
0

这样的库设计本身是不是有点问题呢?

收获园豆:10
幻天芒 | 园豆:37205 (高人七级) | 2016-09-09 15:15

一般来说是不应该存在重名的表. 但是有上层的架构在 ,我想存在即是允许. 不然MSSQL 为啥允许我这么建表呢.

支持(0) 反对(0) 咖菲猫 | 园豆:28 (初学一级) | 2016-09-09 15:27
0

改T4模版是正解

如果只有这两个是重复的话,你加一个if else 就实现了

收获园豆:40
刘宏玺 | 园豆:14020 (专家六级) | 2016-09-09 15:34

调试t4模版的时候 发现所有的 EntitySet.Schema 都为null. .. 

已经不纠结这个了. 换code first 省事.

支持(0) 反对(0) 咖菲猫 | 园豆:28 (初学一级) | 2016-09-09 16:23

@咖菲猫: 确实,code first 才是王道

支持(0) 反对(0) 刘宏玺 | 园豆:14020 (专家六级) | 2016-09-09 16:24
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册