我有一个.dll,里面有一个类,其中包含一个对象列表(这是来自元数据,我没有源代码):
public class APIKeyInfo
{
public APIKeyInfo();
public long AccessMask { get; set; }
public List<AccountEntry> Characters { get; set; }
public DateTime Expires { get; set; }
}
public class AccountEntry
{
public AccountEntry();
public long CharacterID { get; set; }
public string Name { get; set; }
... other properties
}
现在在我的代码中,我有一个 APIKeyInfo 的扩展类,它使用 EF Code First 指定一个数据库表:
[Table("MyApiKey")]
public class MyApiKey : APIKeyInfo
{
[Key]
public int KeyId { get; set; }
[Required]
public string vCode { get; set; }
}
问题是这会导致 EF 给我一个错误,说当它尝试为 APIKeyInfo 中的“列表字符”属性创建一个表时(我假设它只有一个到 MyApiKey 表的 FK),它说密钥有没有被定义。所以,我的问题是,当我无权访问源代码时,如何指定“列表字符”属性的键?我希望有类似的东西:
[Table("MyApiKey")]
public class MyApiKey : APIKeyInfo
{
[Key]
public int KeyId { get; set; }
[Required]
public string vCode { get; set; }
[Key]
base.Characters.CharacterID;
}
只是告诉它使用哪个属性,但显然这不起作用。