Linq To SQL - how to have property not from table

2019-06-03 22:53发布

We are using Linq To SQL with our own data context logic that executes the one linq query across multiple databases. When we get the results back, we need the database for each of the rows. So...

I want to have a property on my class that will return the database name (SQL Server, so DB_NAME()). How can I do this in Linq To Sql?

NOTE: We have hundreds of databases and do not want to put views in each db. The return should come back as just another property on each row of the return result set.

标签: linq-to-sql
2条回答
干净又极端
2楼-- · 2019-06-03 23:14

How are you iterating through the different databases? Could you just include information from the context in the query? For example:

Dim results = _
    From x In myContext.MyTables _
    Select x, info = myContext.Connection.ConnectionString
查看更多
等我变得足够好
3楼-- · 2019-06-03 23:18

In the DBML XML file, you can set the Expression attribute of a Column element to this:

 <Column Name="Table1.DBName" 
         DbType="nvarahcar(128)" 
         Type="System.String" 
         Expression="DB_NAME()" />
查看更多
登录 后发表回答