пространства имен как результат сгенерированного кода структуры объекта - PullRequest
0 голосов
/ 22 апреля 2011

У меня есть два класса Разума:
1. Тот, который генерируется файлом edmx и наследуется контекстом объекта.
2. Тот, который я создал как объект POCO.

Пока я пишу свои запросы, мне нужно написать полное пространство имен класса Reason POCO:

using System.Collections.Generic;
using System.Linq;
using MyProj.Domain.Business.EntitiesRepository.System.Calls;

namespace MyProj.Data.EF4.EntitiesRepository.System.Calls
{
    public class ReasonRepository:
        EFRepository<MyProj.Domain.Business.Entities.System.Calls.Reason>, IReasonRepository
    {
        public IList<MyProj.Domain.Business.Entities.System.Calls.Reason> GetReasonsList()
        {
            return GetQuery().ToList();
        }
    }
}

Если я не пишу полное пространство имен, компилятор рассматривает Reason как сгенерированный объект, а не как нужный мне объект POCO. Есть ли способ предотвратить запись полного пространства имен? ..

Ответы [ 2 ]

1 голос
/ 22 апреля 2011

Вы можете использовать псевдонимы .. см. Пример 1 в http://msdn.microsoft.com/en-us/library/sf0df423(v=vs.80).aspx.

Как ты это делаешь - в вашей директиве using сделайте что-то вроде - использование POCOObjects = MyProj.Domain.Business.Entities.System.Calls

после этого вам просто нужно набрать POCOObjects.Reason

0 голосов
/ 22 апреля 2011

Если ваш класс Reason не находится в пространстве имен MyProj.Data.EF4.EntitiesRepository.System.Calls, я думаю, вы можете просто добавить using MyProj.Domain.Business.Entities.System.Calls

В противном случае вы можете проверить это Q & A C #: Проблема при попытке разрешить класс, когда два пространства имен похожи . Обходной путь заключается в том, что вы используете псевдоним пространства имен global::. Подробнее об этом здесь: http://msdn.microsoft.com/en-us/library/c3ay4x3d.aspx

...