ef code first - Different schema name on correlation table - Entity Framework -
is possible have different schema name on correlation tabels [dbo]?
i'm using code first.
example:
applicationrole.cs
public class applicationrole { public guid applicationroleid { get; set; } public string name { get; set; } public virtual icollection<adgroup> adgroups { get; set; } }
adgroup.cs
public class adgroup { public guid adgroupid { get; set; } public string name { get; set; } public virtual icollection<applicationrole> applicationroles { get; set; } }
applicationroleconfiguration.cs
public class applicationroleconfiguration : entitytypeconfiguration<applicationrole> { public applicationroleconfiguration() { totable("t_applicationroles", "labconfig"); this.haskey(a => a.applicationroleid); this.property(t => t.applicationroleid) .hascolumnname("applicationrole_guid") .hasdatabasegeneratedoption(databasegeneratedoption.identity); } }
adgroupconfiguration.cs
public class adgroupconfiguration : entitytypeconfiguration<adgroup> { public adgroupconfiguration() { totable("t_adgroups", "labconfig"); this.haskey(a => a.adgroupid); this.property(t => t.adgroupid) .hascolumnname("adgroup_guid") .hasdatabasegeneratedoption(databasegeneratedoption.identity); // correlation table should schema [labconfig] this.hasmany(o => o.applicationroles) .withmany(r => r.adgroups) .map(m => { m.mapleftkey("adgroup_guid"); m.maprightkey("applicationrole_guid"); totable("t_applicationroleadgroups", "labconfig"); }); } }
but result on database always:
- [labconfig].[t_adgroups]
- [labconfig].[t_applicationroles]
- [dbo].[applicationroleadgroups]
any ideas? spent hours work desired schema without success.
in case did stupid didn't see...
compare original adgroupconfiguration.cs this:
public class adgroupconfiguration : entitytypeconfiguration<adgroup> { public adgroupconfiguration() { totable("t_adgroups", "labconfig"); this.haskey(a => a.adgroupid); this.property(a => a.adgroupid) .hascolumnname("adgroup_guid") .hasdatabasegeneratedoption(databasegeneratedoption.identity); this.property(t => t.name).hascolumnname("name").isrequired(); // mapping causing error. // mapping correct this.hasmany(o => o.applicationroles) .withmany(r => r.adgroups) .map(m => m.mapleftkey("adgroup_guid") .maprightkey("applicationrole_guid") .totable("t_applicationroleadgroups", "labconfig")); } }
hence mapping had error hiding real problem searching for...
always double check mappings!
Comments
Post a Comment