ef fluent api - Entity Framework - changed generated field/column name -
i have foreign key field generated entity framework (6) @ runtime. field related interfaces t field. end field called interfacefieldname_id
- rename (prefereably via fluent api) typefieldname_id
. know how can adding in fk id field poco class, prefer not that.
is there way rename generated field name?
you can use map
method rename foreign key not defined in model:
modelbuilder.entity<entity1>() .hasrequired(c => c.entity2navproperty) .withmany(t => t.entity1navigationproperty) .map(m => m.mapkey("typefieldname_id"));
if have property in model represent fk , renamed ef in db, should check relationship.code first falls automatically introducing 1 in database in case foreign key property hasn't been discovered convention, , none configured. foreign key property discovered convention if named [target type key name]
, [target type name] + [target type key name]
, or [navigation property name] + [target type key name]
. configure explicitly fk property want use, can can following:
modelbuilder.entity<entity1>() .hasrequired(c => c.entity2navproperty) .withmany(t => t.entity1navigationproperty) .hasforeignkey(d => d.typefieldname);
and if want use different name typefieldname
in db, can this:
modelbuilder.entity<entity1>().property(d=>d.typefieldname).hascolumnname("typefieldname_id")
Comments
Post a Comment