我有两个模型类
public class Person
{
public int PersonId { get; set; }
public string Name { get; set; }
public int AddressId { get; set; }
public Address AddressInfo { get; set; }
}
public class Address
{
public int AddressId { get; set; }
public string streetName { get; set; }
public string City { get; set; }
public string State { get; set; }
}
如果在Person.AddressInfo.AddressId中有任何值得到更新,请自动更新Person.AddressId。请帮助我如何在C#中更新它。
答案 0 :(得分:2)
您可以简单地将以下内容写入Person类:
public int AddressId{
get{return this.AddressInfo?.AddressId ?? 0;}
set{this.AddressInfo?.AddressId= value;}
}
或者写得更好:
public int? AddressId{
get{return this.AddressInfo?.AddressId;}
set{this.AddressInfo?.AddressId= value;}
}
答案 1 :(得分:2)
这是怎么回事?
public class Person
{
public int PersonId { get; set; }
public string Name { get; set; }
public int AddressId
{
get{ return AddressInfo?.AddressId ?? 0 }
set{ AddressInfo?.AddressId = value; }
}
public Address AddressInfo { get; set; }
}
public class Address
{
public int AddressId { get; set; }
public string streetName { get; set; }
public string City { get; set; }
public string State { get; set; }
}
这使用AddressInfo作为后端存储
答案 2 :(得分:0)
下面的代码可以帮助你,
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication5
{
class Program
{
static void Main(string[] args)
{
Address test = new Address();
test.AddressId = 0;
test.City = "xyzzzzzzzzzzzzzzz";
test.streetName = "xyz";
test.State = "xyzzzzzzzzzzzzzzzxxxxxxxxxxxxxxxxxxx";
Person ptest = new Person
{
PersonId = 1,
Name = "test1",
AddressInfo = test,
AddressId = 5,
};
}
}
public class Address
{
public int AddressId { get; set; }
public string streetName { get; set; }
public string City { get; set; }
public string State { get; set; }
}
public class Person
{
public int PersonId { get; set; }
public string Name { get; set; }
public int AddressId {
get{ return AddressInfo != null ? AddressInfo.AddressId : 0;}
set { AddressInfo.AddressId = value; }
}
public Address AddressInfo { get; set; }
}
}
在为addressid分配值之前,请确保addressinfo不为null,如果将null数据分配给addressinfo,则可以更新该值,否则将出现对象引用错误。