相关疑难解决方法(0)

将数据注释添加到由实体框架生成的类

我有实体框架生成的以下类:

public partial class ItemRequest
{
    public int RequestId { get; set; }
    //...
Run Code Online (Sandbox Code Playgroud)

我想把它变成一个必填字段

[Required]
public int RequestId { get;set; }
Run Code Online (Sandbox Code Playgroud)

但是,因为这是生成的代码,这将被消灭.我无法想象一种创建分部类的方法,因为属性是由生成的分部类定义的.如何以安全的方式定义约束?

c# entity-framework asp.net-mvc-4

92
推荐指数
4
解决办法
6万
查看次数

Web API和EF导致InvalidOperationException

我的解决方案中有3个项目:DataModel(EF),DAL,它与DataModel和MVC Web API的实体一起使用.

只有2个非常简单的实体:Person,Address,每个都有3个简单的字段,Person有Address字段(所以这2个实体是链接的)

在我的DAL中,我有一个方法可以返回所有Persons的列表,内容非常简单:return context.Person.ToList();

现在在我的Web API中,我只是调用GetPersons()方法并尝试返回它.在这里我得到一个奇怪的错误信息:

"发生了错误.","ExceptionMessage":"'ObjectContent`1'类型无法序列化内容类型'application/json; charset = utf-8'的响应主体.","ExceptionType":"系统. InvalidOperationException","StackTrace":null,"InnerException":{"$ id":"2","Message":"发生了错误.",...

当我调试时,我可以看到我确实拥有来自GetPersons方法的数据.我也googled并找到唯一的解决方案:我应该在我的启动配置中添加以下行:

var json = config.Formatters.JsonFormatter;
json.SerializerSettings.PreserveReferencesHandling = Newtonsoft.Json.PreserveReferencesHandling.Objects;
config.Formatters.Remove(config.Formatters.XmlFormatter);
Run Code Online (Sandbox Code Playgroud)

但它没有帮助.

我还尝试手动填充列表而不使用数据库:在这种情况下它可以工作.

我有一种强烈的印象,它与EF有关,但我不确切知道那是什么.

rest entity-framework asp.net-mvc-4 asp.net-web-api

4
推荐指数
1
解决办法
5153
查看次数