I have a Foo
entity in Entity Framework. But I'm making it inherit from IFoo
so that my business logic only knows IFoo
- thus abstracting Entity Framework away.
The problem is that Foo
has a collection of Bar
entities. And this collection is of type EntityCollection<Bar>
.
If I put this collection in IFoo
as it is, I make IFoo
dependent on Entity Framework. So I thought of putting it as ICollection<IBar>
, but this doesn't compile (naturally).
The only solution I can think of is to go to the concrete Foo
implementation generated by the Entity Framework designer and change the collection from EntityCollection<Bar>
to ICollection<IBar>
there. But I dread the thought of the implications this will have on Entity Framework "behind the scenes".
Is there any way for me to define IFoo
and IBar
independently of Entity Framework while still maintaining Foo
and Bar
as EF Entities that implement them? Do IFoo
and IBar
even make sense, if I cannot achieve this independence that I aim for?