【问题标题】:namespaces as result of the entity framework generated code命名空间作为实体框架生成代码的结果
【发布时间】:2011-04-22 00:42:37
【问题描述】:

我有两个原因类:
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 对象。 有什么办法可以防止写入完整的命名空间?..

【问题讨论】:

    标签: c# .net entity-framework namespaces


    【解决方案1】:

    您可以使用别名。请参阅http://msdn.microsoft.com/en-us/library/sf0df423(v=vs.80).aspx 中的示例 1。

    你是怎么做到的—— 在您的 using 指令中执行以下操作 - 使用 POCOObjects = MyProj.Domain.Business.Entities.System.Calls

    之后你只需要输入 POCOObjects.Reason

    【讨论】:

      【解决方案2】:

      除非您的 Reason 类位于 MyProj.Data.EF4.EntitiesRepository.System.Calls 命名空间中,否则我认为您可以添加 using MyProj.Domain.Business.Entities.System.Calls

      否则,您可能想查看此问答C#: Problem trying to resolve a class when two namespaces are similar。解决方法是使用 global:: 命名空间别名。更多信息在这里:http://msdn.microsoft.com/en-us/library/c3ay4x3d.aspx

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-04-15
        • 1970-01-01
        • 2013-01-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-13
        • 1970-01-01
        相关资源
        最近更新 更多