如何将T转换为对象

imd*_*sen 4 .net c# asp.net generics asp.net-mvc-3

我将错误转换为实体

public T Add(T entity)
{
    CAFMEntities db = new CAFMEntities();
    db.TabMasters.AddObject((TabMaster)entity);
    db.SaveChanges();
    return entity;
}
Run Code Online (Sandbox Code Playgroud)

它给了我一个错误:

无法将类型'T'转换为'CAFM.Data.EntityModel.TabMaster'

谢谢.

Jon*_*eet 12

那么,您希望如何应用转换?T宣布在哪里?您可以更改它,以便您拥有:

class WhateverClass<T> where T : TabMaster
Run Code Online (Sandbox Code Playgroud)

此时你不需要演员.或者如果你不能约束T,你可以使用:

db.TabMasters.AddObject((TabMaster)(object) entity);
Run Code Online (Sandbox Code Playgroud)

另一种选择是:

db.TabMasters.AddObject(entity as TabMaster);
Run Code Online (Sandbox Code Playgroud)

虽然我个人并不喜欢这样 - 我更喜欢对演员进行更严格的检查.