could not be found"-6ren"> could not be found"-奇怪的是,我已经毫无问题地添加了 5 个表。然而,当我尝试通过我的 edmx 模型添加我的 PostCodesUK 表时,它给我这个错误消息: Error 1 The type or name-6ren">
gpt4 book ai didi

c# - 将类添加到 EF 模型导致编译错误 "The type or namespace name could not be found"

转载 作者:行者123 更新时间:2023-11-30 16:05:29 25 4
gpt4 key购买 nike

奇怪的是,我已经毫无问题地添加了 5 个表。然而,当我尝试通过我的 edmx 模型添加我的 PostCodesUK 表时,它给我这个错误消息:

Error   1   The type or namespace name 'PostCodesUK' could not be found (are you missing a using directive or an assembly reference?)   d:\Ben\documents\visual studio 2013\Projects\DogWalks\DogWalks\App_Code\WalksModel.Context.cs   33  30  DogWalks

不确定发生了什么,但存在一些细微差别。例如,如果我查看 WalksModel.tt 类,我可以看到 PostCodesUK 类,但它没有生成额外的“ stub ”:

enter image description here

如果我随后双击上面的错误,它会将我带到 WalksModel.Context.cs,我会在其中看到此错误: enter image description here

我查看了 PostCodesUK.cs 类下的 namespace,它与其他类匹配。有谁知道问题是什么?我在网上搜索了这个问题,但找不到解决方案。

更新:这是 PostCodeUK 类的样子:

namespace DogWalks.App_Code
{
using System;
using System.Collections.Generic;

public partial class PostCodesUK
{
public int PostcodeID { get; set; }
public string Postcode { get; set; }
public decimal Latitude { get; set; }
public decimal Longitude { get; set; }
public string PostcodeNoSpace { get; set; }
}
}

此外,我在我的模型中添加了另一个临时表(Person)来测试它,它也给了我与 PostCodesUK 相同的错误消息:

public virtual DbSet<Comment> Comments { get; set; }
...
public virtual DbSet<PostCodesUK> PostCodesUKs { get; set; } //error
public virtual DbSet<Person> People { get; set; } //error

最佳答案

好吧,在花了无数个小时试图找到解决方案之后,我可能真的解决了它(touch-wood)。

我很沮丧,所以我删除了我的 edmx 模型。在线阅读,我发现当 edmx 模型保存在子文件夹(而不是根目录)时,VS 2012 存在一个错误。因此,如果我的下面的解决方案不起作用,尽管我设法将其保存在子文件夹中,但可以尝试一下。

无论如何,删除我的模型后:

  1. 我将整个数据库模型重新添加到名为 DAL 的文件夹中。当我尝试编译时,我注意到我所有的类现在都抛出相同的错误。
  2. 我更改了所有类的所有构建操作(从ContentCompile)
  3. 重新构建了应用程序,它成功了。

所以为了测试我试过:

  1. 将另一个表添加到我的模型 Person
  2. 尝试编译(实际上编译正常)但是当我查看 Model.tt 下的 Person.cs 文件时,我发现 stub 再次丢失:

enter image description here

  1. 我将 Build Action 设置更改为编译、保存、关闭 VS 并重新打开它, stub 正确显示: enter image description here

我不知道这是否是问题所在,但它似乎有效。我没有检查我的原始案例,但我怀疑我为我的原始类更改了 .cs 编译模式,但没有为新添加的类更改。

我很高兴我没有把我的机器变成废金属。

关于c# - 将类添加到 EF 模型导致编译错误 "The type or namespace name <className> could not be found",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33522145/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com