数据库里有个表名是一样的.在不同的架构下面
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; }
自己改T4模版.在edmx文件下有一个.tt文件.点开就可以改.点右键可以调试.
已经在调试了. EntitySet.Schema 为null . 看了下所有的table架构都为null .请问你对这个玩意了解吗.
你是想同事用两个库?
不啊. 同一个库下面. 2张表名字是一样的. 在不同的架构下面
Sales.Goods
Stock.Goods 这样.
@咖菲猫:
[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名字是可以自己写的?
这样的库设计本身是不是有点问题呢?
一般来说是不应该存在重名的表. 但是有上层的架构在 ,我想存在即是允许. 不然MSSQL 为啥允许我这么建表呢.
改T4模版是正解
如果只有这两个是重复的话,你加一个if else 就实现了
调试t4模版的时候 发现所有的 EntitySet.Schema 都为null. ..
已经不纠结这个了. 换code first 省事.
@咖菲猫: 确实,code first 才是王道