我有一个字段,它是一对多关系中许多方面的外键(例如Order
- > LineItem
)。我希望实体框架将该字段标记为非空,并在删除,级联"上添加"关系,所以我用[Required]
属性装饰它。但是,我不希望Newtonsoft.JSON序列化或反序列化字段,因此我使用[JsonIgnore]
属性进行装饰。但是,[Required]
属性似乎胜过[JsonIgnore]
,因为我收到错误声明该字段是必需的。我有什么方法可以做到这一点吗?
public class LineItem
{
[JsonIgnore]
[Required]
public int OrderId { get; set; }
}
答案 0 :(得分:1)
我必须将此作为答案,但以下代码有效:
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp2
{
class Program
{
static void Main(string[] args)
{
LineItem item = new LineItem
{
OrderId = 10
};
string json = JsonConvert.SerializeObject(item, Formatting.Indented);
var t = JsonConvert.DeserializeObject<LineItem>(json);
}
public class LineItem
{
[JsonIgnore]
[Required]
public int OrderId { get; set; }
}
}
}