c# - In Entity Framework 6 how can I create a one to many mapping with a navigation property on the other side? -


my domain model trade can have many tradelegs. trying use following mappings.

trade mapping

haskey(t => t.tradeid); property(t => t.tradeid).hasdatabasegeneratedoption(databasegeneratedoption.identity)      .hascolumnname("tradeid");                                       property(t => t.description).hascolumnname("description"); property(t => t.counterpartyid).hascolumnname("counterpartyid"); property(t => t.quantity).hascolumnname("quantity"); property(t => t.isactive).hascolumnname("isactive");  hasmany(t => t.tradelegs);  totable("trade"); 

trade leg mapping

haskey(t => t.tradelegid); property(t => t.tradelegid).hasdatabasegeneratedoption(databasegeneratedoption.identity)     .hascolumnname("tradelegid");                                       property(t => t.trdid).hascolumnname("trdid"); // fk  trade property(t => t.ordinal).hascolumnname("ordinal"); property(t => t.description).hascolumnname("description");  totable("tradeleg");         

when try select trades excpetion.

invalid column name trade_tradeid.

i can make work adding navigation property on tradeleg trade , adding .withrequired(u => u.trade).hasforeignkey(u =>u.trdid) hasmany() mapping on trade object.

however, don't want have navigation property on tradeleg trade. want have int fk property (trdid) on tradeleg. noticed if use tradeid instead of trdid fk property on tradeleg works because of default rules. there way tell ef name of fk field on other side of hasmany().

the mapping should work trade object using hasmany(). below should work.

hasmany(t => t.tradelegs)     .withrequired() //use withoptional optional no need specify mapping on other side.     .hasforeignkey(leg => leg.trdid); 

i tested on ef6 on 1 of mapping objects , seems work.

this same concept can work other way when one-to-many on child without navigation property on parent such as

hasrequired(x => x.property)     .withmany() //no need specify navigation property on other side     .hasforeignkey(x=> x.foreignkeyproperty); 

Comments

Popular posts from this blog

php - Vagrant up error - Uncaught Reflection Exception: Class DOMDocument does not exist -

vue.js - Create hooks for automated testing -

Add new key value to json node in java -