Key/ID 类型未知的 IEntity
IEntity where Key/ID type unknown
我一直在探索 C# 中数据存储库的使用,因为我在很长一段时间内致力于我的第一个 "big" 应用程序(也是我第一个使用 C# 的应用程序)。
特别是我使用了来自 http://web.archive.org/web/20150404154203/https://www.remondo.net/repository-pattern-example-csharp/ 以及 MSDN 和 Whosebug 的一些信息。
我似乎卡在了一些我认为可能很简单的事情上,但我试过谷歌搜索等,要么它比我想象的要复杂,要么我使用了错误的术语。
基本上,当我将 IEntity 接口定义为如下内容时:
namespace Test.Database
{
public interface IEntity
{
int KeyValue { get; set; }
}
}
这对大多数事情都适用,但这个项目使用的是现有的、令人讨厌的数据库(因此我试图尽可能从数据库中抽象出我的业务逻辑和其他开发人员未来的业务逻辑)而不是所有键都是整数。有字符、整数、双精度等键。
有没有办法让界面的键 属性 与类型无关?还是我看错了?
您可以根据您的情况使用泛型使其成为强类型。例如,
namespace Test.Database
{
public interface IEntity<T>
{
T KeyValue { get; set; }
}
}
我一直在探索 C# 中数据存储库的使用,因为我在很长一段时间内致力于我的第一个 "big" 应用程序(也是我第一个使用 C# 的应用程序)。 特别是我使用了来自 http://web.archive.org/web/20150404154203/https://www.remondo.net/repository-pattern-example-csharp/ 以及 MSDN 和 Whosebug 的一些信息。
我似乎卡在了一些我认为可能很简单的事情上,但我试过谷歌搜索等,要么它比我想象的要复杂,要么我使用了错误的术语。
基本上,当我将 IEntity 接口定义为如下内容时:
namespace Test.Database
{
public interface IEntity
{
int KeyValue { get; set; }
}
}
这对大多数事情都适用,但这个项目使用的是现有的、令人讨厌的数据库(因此我试图尽可能从数据库中抽象出我的业务逻辑和其他开发人员未来的业务逻辑)而不是所有键都是整数。有字符、整数、双精度等键。 有没有办法让界面的键 属性 与类型无关?还是我看错了?
您可以根据您的情况使用泛型使其成为强类型。例如,
namespace Test.Database
{
public interface IEntity<T>
{
T KeyValue { get; set; }
}
}