通用扩展方法的正确语法
本文关键字:语法 方法 扩展 | 更新日期: 2023-09-27 18:21:56
我想这样做:
public static void SetStringsToBeNonUnicode(this EntityTypeConfiguration<T> config)
{
}
编译器不喜欢<T>在那里,正确的语法是什么?
更多上下文,EntityTypeConfiguration是一个EntityFramework类,定义为
public class EntityTypeConfiguration<TEntityType> : StructuralTypeConfiguration<TEntityType> where TEntityType : class
这就是引起我头痛的原因。
我真正想做的是在配置dbcontext类时能够做这样的事情:
public class ReceiptEntityConfiguration: EntityTypeConfiguration<ReceiptEntity>
{
public ReceiptEntityConfiguration()
{
ToTable("vReceipt");
HasKey(r => r.ReceiptId);
this.SetStringsToBeNonUnicode(); //I want to make all string fields for this entity type (ReceiptEntity in this case) to be treated as not unicode.
...etc etc
}
}
EF6.0使用轻量级约定来处理这一问题,但我不能使用产品的测试版位。
您需要将T
指定为函数的类型参数。你这样做:
public static void SetStringsToBeNonUnicode<T>(this EntityTypeConfiguration<T> config) where T : class
{
}