Angenommen habe ich die folgenden 2 SQL-Tabellen:Wie Zuordnung Lookup-Tabelle zu enum?
Foo
Column DataType
---------------------------
Title NVARCHAR(20)
Body NVARCHAR(MAX)
FooTypeId TINYINT
FooType
Column DataType
--------------------------
FooTypeId TINYINT
Name NVARCHAR(10)
nun mit im Entity Framework 4.0 mit einem benutzerdefinierten Datenkontext und POCO Implementierung .
Wie kann ich dies auf den Designer und meine POCOs?
Muss ich eine POCO-Eigenschaft (vom Typ Byte ich nehme an) namens "FooTypeId" erstellen, dann enthülle ich eine andere Eigenschaft meines Enum-Typs?
Ie.
public class Foo
{
public byte FooTypeId { get; set; } // for ORM - do i need this??
public FooType FooType // for most querying operations
{
get
{
return (FooType)this.FooTypeId;
}
set
{
this.FooTypeId = (int)value;
}
}
}
public enum FooType
{
Blah = 1,
Foo = 2,
Bar = 3
}
Im Moment, ich habe auf meinem Designer nicht einmal den FooType Tisch, wie ich versuche ich kann gemustert „Express“ dies als eine Aufzählung von dem tatsächlichen FooTypeId auf der Foo-Eigenschaft. Oder soll ich eine "Navigationseigenschaft" auf dem Mapper erstellen und dann das in meinem POCO definieren?
Ich habe Threads aus einigen Jahren gelesen (EF1) sagen "Enums werden nicht in EF unterstützt", ist dies immer noch der Fall mit EF4? Wenn es ist, was mache ich richtig?
Ich bin hier irgendwie verloren, einige Anleitung würde sehr geschätzt werden!
Ich habe T4 dazu verwendet. http://www.hanselman.com/blog/T4TextTemplateTransformationToolkitCodeGenerationBestKeptVisualStudioSecret.aspx –