【问题标题】:Cannot implicitly convert type (linq to entity)无法隐式转换类型(linq 到实体)
【发布时间】:2014-09-04 20:45:42
【问题描述】:

我正在处理一个 mvc5 项目,我将我的数据库与 Linq 连接到 Entity,但由于某些原因,我不得不删除 .edmx 文件并在另一个文件夹中重新连接我的数据库。

从那时起我就遇到了一个错误:

"不能将类型 'TicketingDemoProject.Models.User' 隐式转换为 'TicketingDemoProject.User'。

我知道文件夹不一样,但不知道如何解决这个问题。

感谢您的帮助。

代码:

    namespace TicketingDemoProject.Controllers{
public class TechnicianController : Controller{
private TicketingDBENtities tickets = new TicketingDBEntities();
public ActionResult Index(){
string username = User.Identity.name;
User u = tickets.User.Single(user1=>user1.user_name == username)
int userIdenti = u.User_Id;
}
}

}

【问题讨论】:

    标签: c# asp.net-mvc linq-to-entities


    【解决方案1】:

    通过更改文件夹,您更改了 edmx 生成的类的命名空间。默认情况下,Visual Studio 将使用基于当前文件夹名称的命名空间。您可以将 edmx 的命名空间修改为之前的命名空间 TicketingDemoProject

    更改命名空间:

    • 右击 edmx 文件进入属性
    • 指定自定义工具命名空间(指定您的新命名空间TicketingDemoProject。默认情况下,它将为空,这意味着它将具有 Visual Studio 根据文件夹名称生成的默认命名空间。

    您的代码正在使用以前生成的类,这些类现在位于命名空间 TicketingDemoProject 中,因为您更改了文件夹并在 Model 中生成了 edmx,与 edmx 的类关联的命名空间是 TicketingDemoProject.Models,因此出现错误。

    要了解 Visual Studio 如何管理命名空间,请参阅:Understanding Visual Studio's Default Namespaces

    【讨论】:

    • 你好 habib,谢谢你的帮助,实际上我明白了问题的原因,但我不想把它放回同一个文件夹。我想将 .edmx 文件保存到“模型”文件夹中
    • @HarjinderRandhawa,刚刚添加了有关如何更改 edmx 命名空间的说明。
    • 没有。我在其他课程中遇到错误。我搞砸了我的项目。但幸运的是,我正在使用我的 Dropbox 离线工作。将从保管箱中恢复项目并将其保留为备份。大声笑
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多