Re[3]: [EntityFramework] Кастомная генерация cs кода в EdmGen.exe
От: Аноним  
Дата: 18.11.12 14:45
Оценка:
Здравствуйте, DashkovAndrey, Вы писали:

DA>Здравствуйте, Аноним, Вы писали:


DA>Парни, я реально ценю желание помочь и я точно не хотел бы оттолкнуть тех кто хочет помочь, но пожалуйста соотносите ответ с проблемой. я написал так много букв для того чтобы не получать вместо ответа что-то в дуже: "а что ты имел ввиду", "а зачем тебе это вообще нужно" или "да можно, а как именно — гугл в помощь".


DA>вопрос не в том можно ли сделать это вообще — а в том как это сделать в частности, в Run-Time )

т.е. нужен готовый проект? тогда только в понедельник, дома у меня голая ось.
но там не много кодить, можно и самому попробовать.
1. код для генерирации метаданных примерно такой:

            var catalogIndex = connectionStr.IndexOf("initial catalog=") + 16;
            var catalogLength = connectionStr.IndexOf(';', catalogIndex) - catalogIndex;
            var catalog = connectionStr.Substring(catalogIndex, catalogLength);

            var storeGenerator = new EntityStoreSchemaGenerator(
                "System.Data.SqlClient",
                connectionStr,
                modelNamespace + ".Store");
            storeGenerator.GenerateStoreMetadata(entityFilter);

            var modelGenerator = new EntityModelSchemaGenerator(
                storeGenerator.EntityContainer,
                modelNamespace,
                modelNamespace + "Container");
            modelGenerator.GenerateForeignKeyProperties = true;
            modelGenerator.PluralizationService = PluralizationService.CreateService(CultureInfo.GetCultureInfo("en-US"));
            modelGenerator.GenerateMetadata();


2. используя T4 preprocessed template генерируем класс, который в run-time будет генерировать код, который вы сейчас получаете в design-time.
3. этот класс partial, расширяем его кодом из п.1. дальше уже вам виднее, чего там должно быть.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.