gpt4 book ai didi

c# - 在使用代码优先属性定义模型的模型项目中是否需要 EntityFramework?

转载 作者:行者123 更新时间:2023-11-30 22:14:09 27 4
gpt4 key购买 nike

我创建了一个单独的项目并将我的模型复制到这个项目中。我引用了

using System.ComponentModel.DataAnnotations

我的模型定义如下:

 public class File
{
[Key]
[Column("file_id")]
public int Id { get; set; }

[Column("user_id")]
public int UserId { get; set; }

...
}

我得到的错误是:

The type or namespace Column could not be found ...

如果我添加对 EntityFramework 的引用,它工作正常,但我想通过为我的 Web Api Rest Client 库引用它来重新使用我的模型项目,并且不想无缘无故地引入 EF。

我正在使用 .net 4.0

他们是否在 4.5 中解决了这个问题(使其与 EF 松散耦合)?

最佳答案

是的,此问题已通过 .NET 4.5 解决。

带有 .NET 4.0(也称为 EF 4.4)的 EF 5 的 EntityFramework.dll 的对象目录显示 System.ComponentModel.DataAnnotations 中的所有属性和 EF 程序集中的 System.ComponentModel.DataAnnotations.Schema 命名空间:

EF 5 with .NET 4.0

而带有 .NET 4.5 的 EF 5 的 EntityFramework.dll 不再包含这些命名空间:

EF 5 with .NET 4.5

这些属性已移动到 .NET 4.5 框架程序集 System.ComponentModel.DataAnnotations.dll 中,位于它们之前在 EF 程序集中的相同命名空间下:

DataAnnotations with .NET 4.5

(MinLengthMaxLength 也在 System.ComponentModel.DataAnnotations 中,其中所有属性的总列表太长了截图。)

关于c# - 在使用代码优先属性定义模型的模型项目中是否需要 EntityFramework?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18643467/

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