2012-01-30 3 views
0

Скажем, у меня очень простая структура классов, более удобная, чем что-либо.Состав классов в Entity Framework 4

class A{ 
    [Column("someValue")] 
    public int someValue{get; set;} 
} 

[Table("tableB")] 
class B{ 
    [Column("somethingElse")] 
    public int somethingElse{get; set;} 
    public A somethingEncapsulated{get; set;} 
} 

[Table("tableC")] 
class C{ 
    [Column("otherSomething")] 
    public int otherSomething{get; set;} 
    public A somethingEncapsulated{get; set;} 
} 

А структура базы данных, , которая не может быть изменена выглядит так

tableB 
------ 
somethingElse int 
someValue int 

tableC 
----- 
otherSomething int 
someValue int 

Можно представить эту структуру в Entity Framework без устранения класса А? Если да, то как?

+0

Что вы имеете в виду 'без устранения класса Ā'? –

+1

Другая альтернатива будет наследовать класс 'A' в классах' B' и 'C'. Затем вы можете иметь несколько параметров отображения, таких как «Таблица на иерархию», «таблица на тип». http://vincentlauzon.wordpress.com/2011/04/19/entity-framework-4-1-inheritance-7/ –

+0

@Jayantha, наследование - это не тот подход, о котором я думал. Это может сработать, но первое беспокойство, которое приходит на ум, - это уместность сказать: «B - это A». Что делать, если B уже наследует от другого класса, более подходящего класса? – MushinNoShin

ответ

2

В этом сценарии можно использовать сопоставление сложных типов.

[ComplextType] 
public class A{ 
    [Column("someValue")] 
    public int someValue{get; set;} 
} 

Go through this article