我希望通过使用具有通用字段的类来稍微简化我的代码,但EF正在抗议并提供错误消息
类型' T'必须是不可为空的值类型才能将其用作 参数' T'在通用类型或方法中,System.Nullable'
这是我的简化代码。基本上,我试图保存有关数字属性的其他数据。
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@android:id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="?android:attr/listSeparatorTextViewStyle" />
<TextView
android:id="@android:id/summary"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="5dp" />
</LinearLayout>
因此,Equipment的每个数字属性都可以有一个默认值,但默认值可以为null。
Equipment表的基础数据库结构具有字段
我可以创建一个设备实例并设置值,但是当我尝试将其持久化到数据库时,我得到了这个错误。
但是,如果我按数据类型创建一个类:
public class Equipment
{
public int Id { get; set; }
public ComplexValue<int> ShaftSpeed { get; set; }
public ComplexValue<Single> ShaftSize { get; set; }
}
public class ComplexValue<T> where T : struct, IComparable
{
public T Value { get; set; }
public T? DefaultValue { get; set; }
}
它工作正常。
我将通用类型限制为结构,正如我所看到的那样,但这并没有帮助。
欢迎任何想法或建议!
由于
道格