Hi, das Problem ist nicht unbedingt die Konvertierung zu excel, sondern viel mehr wie ich die Daten, ohne Angabe der einzelnen Eigenschaften, erhalte.
Für meine ColumnHeader mach ich das über Reflection:
StringBuilder sb = new StringBuilder();
MyTable[] t= (from k in ModelContext.MyTable select k).ToArray();
MetadataWorkspace workspace = ModelContext.MetadataWorkspace;
workspace.LoadFromAssembly(Assembly.Load(@"MyAssembly"));
System.Data.Metadata.Edm.ItemCollection itemCol = workspace.GetItemCollection(DataSpace.OSpace);
foreach (EdmType eType in itemCol)
{
if (eType.GetType().BaseType == typeof(System.Data.Metadata.Edm.EntityType) && eType.Name == "MyTable")
{
for (int i = 0; i < ((System.Data.Metadata.Edm.EntityType)(eType)).Properties.Count; i++)
{
//für jede Property
sb.Append(((System.Data.Metadata.Edm.EntityType)(eType)).Properties[i]);
if (i + 1 < ((System.Data.Metadata.Edm.EntityType)(eType)).Properties.Count)
{
sb.Append(",");
}
else
{
sb.Append("\n");
}
}
}
}
ich schreibe also alle Namen der Eigenschaften in den StringBuilder und separiere mit einem Komma. Dadurch erhalt eich also meine benötigten ColumnHeader.
Nun möchte ich natürlich auch alle Daten erhalten die es in "MyTable" gibt. Diese möchte ich jedoch nicht alle als MyTable.myProperty1, MyTable.myProperty2 angeben , sondern z.B. durch ein "foreach" erhalten. Nur wie komm ich an alle Daten
ohne die explizite Angabe ran?
Gruß