Хорошо, учитывая дальнейшее разъяснение, вот что я буду делать.
В соответствии с заботой, выраженной GraemeF, делать то, что вы хотите, хрупко и в лучшем случае может сломаться.
Из-за этого общая практика состоит в том, чтобы рассматривать поддержку данных времени разработки как совершенно иной подход, чем поддержка данных времени выполнения. Проще говоря, связь, которую вы создаете между средой разработки и этой БД, является плохой идеей.
Чтобы просто предоставить данные времени разработки для визуализации, я предпочитаю использовать фиктивный класс, который придерживается общего интерфейса в качестве класса времени выполнения. Это дает мне возможность показать данные, которые, как я могу убедиться, имеют правильный тип и соответствуют тому же контракту, что и мой объект времени выполнения. Тем не менее, это совершенно другой класс, который используется для поддержки времени разработки (и часто используется для модульного тестирования).
Так, например. Если у меня был класс времени выполнения, в котором должны были быть указаны личные данные, такие как имя, фамилия и адрес электронной почты:
public class Person()
{
public String FirstName { get; set;}
public String LastName {get; set;}
public Email EmailAddress {get; set;}
}
и я заполнял этот объект из БД во время выполнения, но мне также нужно было обеспечить визуализацию во время разработки. Я бы представил интерфейс IPerson, который определяет контракт, которому необходимо придерживаться, а именно обеспечивает существование методов получения свойств:
public interface IPerson()
{
String FirstName { get; }
String LastName { get; }
Email EmailAddress { get; }
}
Затем я обновлю свой класс Person во время выполнения для реализации интерфейса:
public class Person() : IPerson
{
public String FirstName { get; set;}
public String LastName {get; set;}
public Email EmailAddress {get; set;}
}
Тогда я бы создал фиктивный класс, который реализует тот же интерфейс и предоставляет разумные значения для использования во время разработки
public MockPerson() : IPerson
{
public String FirstName { get { return "John"; } }
public String LastName { get { return "Smith"; } }
public Email EmailAddress { get { return new Email("John@smith.com"); } }
}
Затем я бы реализовал механизм для предоставления объекта MockPerson во время разработки и реального объекта Person во время выполнения. Что-то вроде это или это . Это обеспечивает поддержку данных времени разработки без жесткой зависимости между средой выполнения и средой разработки.
Этот шаблон гораздо более гибок и позволит вам обеспечить согласованную поддержку данных времени разработки во всем приложении.