我们怎样取各种实体呢?看看下面的代码:
白皮书中还举例说明了其他的方式,比如[Database(Name="MyDatabase")] public class VehicleContext : DataContext { ...... public Table<Vehicle> Vehicls { get { return this.GetTable<Vehicle>(); } } public IQueryable<Truck> Trucks { get { return this.Vehicls.OfType<Truck>(); } } public IQueryable<Car> Cars { get { return this.Vehicls.OfType<Car>(); } } }
return this.Vehicls.Where(p => p is Car);
或者
return this.Vehicls.Select(p => p as Car).Where(p => p != null);
只支持单表继承体系的确是很初级,不过从Linq To Sql的功能上来看,它主要强调的是从编译以及语言层面上来支持数据查询和分析,而不是强大的ORM,如果想要实体继承、支持多数据库、松散耦合,可以使用Linq To Entites或者ADO.NET Entity Framework。可以说Linq To Sql的出现给.NET编程人员带来了极大的惊喜。