簡體   English   中英

LINQ-to-SQL中的無效對象名稱

[英]Invalid Object Name from LINQ-to-SQL

我有一個SQL Server數據庫,我剛剛添加了一個新表:

CREATE TABLE [dbo].[my_table](
    [my_primary_key] [int] NOT NULL,
    [my_data_value] [int] NULL,
PRIMARY KEY CLUSTERED 
(
    [my_primary_key] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

我將新表從Visual Web Developer中的數據庫資源管理器my_schema.dbml設計窗口中。 這為我創建了一個my_schema.vb文件,因此:-

Partial Class my_schemaDataContext

End Class

盡管該表的某些痕跡確實出現在XML中:

<?xml version="1.0" encoding="utf-8"?><Database Name="my_schema" Class="my_schemaDataContext" xmlns="http://schemas.microsoft.com/linqtosql/dbml/2007">
  <Connection Mode="AppSettings" ConnectionString="Data Source=MYPC;Initial Catalog=my_schema;Integrated Security=True" SettingsObjectName="MyProgram.My.MySettings" SettingsPropertyName="my_schemaConnectionString" Provider="System.Data.SqlClient" />
  <Table Name="dbo.my_table" Member="my_tables">
    <Type Name="my_table">
      <Column Name="my_primary_key" Type="System.Int32" DbType="Int NOT NULL" IsPrimaryKey="true" CanBeNull="false" />
      <Column Name="my_data_value" Type="System.Int32" DbType="Int" CanBeNull="true" />
    </Type>
  </Table>
</Database>

然后,我嘗試像這樣在表中插入行:

Try
    db = New my_schemaDataContext("Integrated Security=SSPI; ")
    Dim new_row As my_table
    new_row = New my_table
    new_row.my_primary_key = 1
    new_row.my_data_value = 1
    db.my_tables.InsertOnSubmit(new_row)
    db.SubmitChanges()
Catch ex As Exception
    ' do something
End Try

這將導致異常Invalid Object Name 'dbo.my_table

大概我必須將模式名稱塞在某個地方,但是看不到該怎么做。 我嘗試添加Initial Catalogue=my_schema; 到連接字符串,但這會導致異常Keyword Not Supported: Initial Catalogue

有誰知道我還能嘗試什么? (我應該注意,我還在相同模式中嘗試了其他具有相同結果的表,希望可以消除造成該問題的隨機錯別字。)

看起來連接字符串不正確。 我也相信Catalogue應該在Catalog上拼寫。

DataContext的構造函數采用連接字符串。

"Integrated Security=SSPI; "

對我來說看起來像不是有效的連接字符串。

如果您不提供任何內容,它將使用創建時設置的連接字符串。 這是設置my_schemaConnectionString 所以做:

db = New my_schemaDataContext()

或者,如果您想在運行時進行更改:

string connectionString = "whatever";
db = New my_schemaDataContext(connectionString)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM