0

我的问题是我的网站使用 WebPages、Entity Framework 6.1.3、c# 和 SQL CE 数据库。我的“数据库优先”生成的实体类型之一与 system.TimeZone 类的名称完全相同,但智能感知和 IDE 没有正确拾取/处理名称冲突。

我的问题是如何在代码中完全限定实体名称(使用 EF 6.1.3,实体上下文)以防止名称与系统类发生冲突。

我有一个现有数据库表的 EF 实现。该表被命名为“TimeZones”。实体模型是使用数据库优先方法生成的。

EF 复数规则将表名转换为名为“TimeZone”的实体。

问题是,当我尝试更新我的“TimeZone”实体时,intellisense 认为我正在尝试更新“System.TimeZone”类,因为对我的新 TimeZOne 实例的所有点引用都是对 System.TimeZone 的属性和方法班级。我曾期望看到我的实体模型的 TimeZOne 实体的属性。

我希望能够使用命名空间完全限定我的 TimeZone 实体,或者在我的代码顶部的 using 语句中包含我的模型的命名空间。但是,EF 6.1.3 模型属性为我提供的“命名空间”似乎并不是真正的命名空间。EF 是从现有数据库生成的。

4

1 回答 1

0

当您声明它的对象时,使您的实体类路径显式:

MyApplication.Entities.TimeZone tz = new MyApplication.Entities.TimeZone();

或者简单地说:

var tz = new MyApplication.Entities.TimeZone();

您的实体类前面应该是这样的:

namespace MyApplication.Entities
{
    public class Person
    {
        //
    }
}
于 2015-06-05T19:25:02.330 回答