LINQ入门问题 [英] LINQ Getting Started Problem

查看:44
本文介绍了LINQ入门问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在LINQ中构建我的hello-world程序.

I am trying to build my hello-world program in LINQ.

在执行以下代码时:

(这是我的VS2008生成的LINQ to SQL类.)

(This is my LINQ to SQL class which is generated by VS2008.)

#pragma warning disable 1591
//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:2.0.50727.3053
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

namespace LINQ_to_SQL_Test
{
    using System.Data.Linq;
    using System.Data.Linq.Mapping;
    using System.Data;
    using System.Collections.Generic;
    using System.Reflection;
    using System.Linq;
    using System.Linq.Expressions;
    using System.ComponentModel;
    using System;


    [System.Data.Linq.Mapping.DatabaseAttribute(Name="LINQ_Test")]
    public partial class PersonDataContext : System.Data.Linq.DataContext
    {

        private static System.Data.Linq.Mapping.MappingSource mappingSource = new AttributeMappingSource();

    #region Extensibility Method Definitions
    partial void OnCreated();
    partial void InsertPerson(Person instance);
    partial void UpdatePerson(Person instance);
    partial void DeletePerson(Person instance);
    #endregion

        public PersonDataContext() : 
                base(global::LINQ_to_SQL_Test.Properties.Settings.Default.LINQ_TestConnectionString, mappingSource)
        {
            OnCreated();
        }

        public PersonDataContext(string connection) : 
                base(connection, mappingSource)
        {
            OnCreated();
        }

        public PersonDataContext(System.Data.IDbConnection connection) : 
                base(connection, mappingSource)
        {
            OnCreated();
        }

        public PersonDataContext(string connection, System.Data.Linq.Mapping.MappingSource mappingSource) : 
                base(connection, mappingSource)
        {
            OnCreated();
        }

        public PersonDataContext(System.Data.IDbConnection connection, System.Data.Linq.Mapping.MappingSource mappingSource) : 
                base(connection, mappingSource)
        {
            OnCreated();
        }

        public System.Data.Linq.Table<Person> Persons
        {
            get
            {
                return this.GetTable<Person>();
            }
        }
    }

    [Table(Name="dbo.Person")]
    public partial class Person : INotifyPropertyChanging, INotifyPropertyChanged
    {

        private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);

        private int _ID;

        private System.Nullable<int> _IDRole;

        private string _LastName;

        private string _FirstName;

    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnIDChanging(int value);
    partial void OnIDChanged();
    partial void OnIDRoleChanging(System.Nullable<int> value);
    partial void OnIDRoleChanged();
    partial void OnLastNameChanging(string value);
    partial void OnLastNameChanged();
    partial void OnFirstNameChanging(string value);
    partial void OnFirstNameChanged();
    #endregion

        public Person()
        {
            OnCreated();
        }

        [Column(Storage="_ID", DbType="Int NOT NULL", IsPrimaryKey=true)]
        public int ID
        {
            get
            {
                return this._ID;
            }
            set
            {
                if ((this._ID != value))
                {
                    this.OnIDChanging(value);
                    this.SendPropertyChanging();
                    this._ID = value;
                    this.SendPropertyChanged("ID");
                    this.OnIDChanged();
                }
            }
        }

        [Column(Storage="_IDRole", DbType="Int")]
        public System.Nullable<int> IDRole
        {
            get
            {
                return this._IDRole;
            }
            set
            {
                if ((this._IDRole != value))
                {
                    this.OnIDRoleChanging(value);
                    this.SendPropertyChanging();
                    this._IDRole = value;
                    this.SendPropertyChanged("IDRole");
                    this.OnIDRoleChanged();
                }
            }
        }

        [Column(Storage="_LastName", DbType="VarChar(50)")]
        public string LastName
        {
            get
            {
                return this._LastName;
            }
            set
            {
                if ((this._LastName != value))
                {
                    this.OnLastNameChanging(value);
                    this.SendPropertyChanging();
                    this._LastName = value;
                    this.SendPropertyChanged("LastName");
                    this.OnLastNameChanged();
                }
            }
        }

        [Column(Storage="_FirstName", DbType="VarChar(50)")]
        public string FirstName
        {
            get
            {
                return this._FirstName;
            }
            set
            {
                if ((this._FirstName != value))
                {
                    this.OnFirstNameChanging(value);
                    this.SendPropertyChanging();
                    this._FirstName = value;
                    this.SendPropertyChanged("FirstName");
                    this.OnFirstNameChanged();
                }
            }
        }

        public event PropertyChangingEventHandler PropertyChanging;

        public event PropertyChangedEventHandler PropertyChanged;

        protected virtual void SendPropertyChanging()
        {
            if ((this.PropertyChanging != null))
            {
                this.PropertyChanging(this, emptyChangingEventArgs);
            }
        }

        protected virtual void SendPropertyChanged(String propertyName)
        {
            if ((this.PropertyChanged != null))
            {
                this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
            }
        }
    }
}
#pragma warning restore 1591

这是我的手工编码驱动程序:

This is my hand-coded driver program:

class Program
    {
        static void Main(string[] args)
        {
            PersonDataContext dc = new PersonDataContext("LINQ_TestConnectionString");

            Person person = new Person();
            person.ID = 4;
            person.IDRole = 1;
            person.FirstName = "aaa";
            person.LastName = "bbb";

            dc.Persons.InsertOnSubmit(person);
            dc.SubmitChanges();
        }
    }

我从SQL Server收到以下错误消息.

I am getting the following error message from SQL Server.

A network-related or instance-specific error occurred while 
establishing a connection to SQL Server. The server was not found 
or was not accessible. Verify that the instance name is correct 
and that SQL Server is configured to allow remote connections. 
(provider: Named Pipes Provider, error: 40 - Could not open a 
connection to SQL Server)

我该如何解决问题?

推荐答案

您正在将字符串文字"LINQ_TestConnectionString"传递到构造函数中-因此它将其视为连接字符串本身.那不是连接字符串,只是连接字符串 setting 的名称.

You're passing the string literal "LINQ_TestConnectionString" into the constructor - so it's treating that as the connection string itself. That's not the connection string, it's just the name of the connection string setting.

无参数构造函数-将自动使用LINQ_TestConnectionString设置:

The the parameterless constructor - that will automatically use the LINQ_TestConnectionString setting:

PersonDataContext dc = new PersonDataContext();

或者,传入一个 real 连接字符串.

Alternatively, pass in a real connection string.

这篇关于LINQ入门问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆