gpt4 book ai didi

c# - 如何启用映射实体的私有(private)属性

转载 作者:太空宇宙 更新时间:2023-11-03 11:08:27 24 4
gpt4 key购买 nike

一开始我不得不为我的英语说抱歉。

我正在使用 EntityFramework 和代码优先方式。我脑子里有一个想法,但我不知道如何让它成为现实。我不是编程初学者,但我一直在使用流利的 NHibernate。

我有一个实体:

public class User
{
[Key]
public Int32 Id { get; set; }
public String Name { get; set; }
// This property should be mapped on DB
private String Surname { get; set; }

// This one shouldn't be mapped
public String GetSurname { get { return Surname; } set { Surname = "SomePrefix." + value; } }
}

问题1.如何映射实体的私有(private)属性?

我无法在上下文中的 OnModelCreating() ovverride 中访问此私有(private)属性。

问题2.如何禁用一个公共(public)属性的映射?

作为我想要得到的结果:当我尝试设置姓氏时,我在开头添加了前缀。

最佳答案

Entity Framework 不提供映射私有(private)属性的方法,因为它需要向私有(private)属性读取/写入值,因此它必须至少有一个公共(public)的属性获取/设置。

在回答您的第二个问题时,您可以使用模型构建器(我首选的描述映射的方式如下)

modelBuilder.Entity<User>().Ignore(u=>u.GetSurname);

或者添加一个属性

[NotMapped]
private String Surname { get; set; }

关于c# - 如何启用映射实体的私有(private)属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14930556/

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