我很抱歉难以理解的标题。
通常情况下,这就是我在做的事情:
现在我遇到了这个问题,说我有两张桌子:
CREATE TABLE [VoucherType]
(
[ID] nvarchar(10) not null Constraint [PK_VoucherType] Primary Key Clustered ,
[VNName] nvarchar(50) default '' not null,
[ENName] nvarchar(50) default '' not null,
[Rowver] [TIMESTAMP] not null
)
CREATE TABLE dbo.[VoucherHeader]
(
[ID] INT IDENTITY(1,1) Constraint [PK_VoucherHeader] Primary Key Clustered , -- PRIMARY
[DateCreated] datetime not null,
[Description] nvarchar (512) default '' not NULL ,
[VoucherTypeID] nvarchar(10) null
Constraint [FK_VoucherHeader_VoucherTypeID] Foreign Key (VoucherTypeID) References dbo.VoucherType(ID)
)
现在,在我的代码中,我添加了一个部分类VoucherHeader,我的目标是添加一个名为 VoucherTypeName 的新属性,该属性来自 VoucherType 表:
public partial class VoucherHeader
{
[DataMember]
public string VoucherTypeName
{
set { }
get
{
if (VoucherType != null) return VoucherType.ENName;
else return "";
}
}
}
好吧,现在我在VourcherHeader类中有了VourcherType.ENName
但是如果我在VoucherHeader表中添加了一个新列,它将引用它自己的列:
alter table voucherheader add
[RelatedID] [int] null
Constraint [FK_VoucherHeader_RelatedID] Foreign Key (RelatedID) References dbo.VoucherHeader(ID)
这不起作用:
public partial class VoucherHeader
{
[DataMember]
public string RelatedDescription
{
set { }
get
{
if (VoucherHeader != null) return VoucherHeader.Description;
else return "";
}
}
}
非常感谢任何帮助!
答案 0 :(得分:1)
如果使用数据库优先方法,则只需在更改VoucherHeader表后从数据库更新模型。
这可能会导致出现另外两个导航属性:VoucherHeader1和VoucherHeader2。
VoucherHeader1用于VoucheHeaders的集合,因为此特定实体可以是许多其他VoucherHeader实体的目标。
VoucherHeader2将是您的RelatedID参考的相关实体。因此,在您的代码中,您需要引用此实体的描述:
public partial class VoucherHeader
{
[DataMember]
public string RelatedDescription
{
set { }
get
{
if (VoucherHeader2 != null) return VoucherHeader2.Description;
else return "";
}
}
}
您可以在生成的实体类中检查正确的属性名称(model.tt下的VoucherHeader.cs)。