Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用c#linq修改NHibernate配置文件 让我们考虑下面的Web.CONFIG文件 <?xml version="1.0"?> <configuration> <configSections> <section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate"/> </configSections> <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"> <session-factory> <property name='proxyfactory.factory_class'>NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle </property> <property name="connection.provider"> NHibernate.Connection.DriverConnectionProvider </property> <property name="connection.connection_string"> Server=myServerAddress;Port=1234;Database=myDataBase;Uid=myUsername;Pwd=myPassword; </property> <property name="dialect"> NHibernate.Dialect.MySQLDialect </property> <property name="show_sql"> false </property> <property name="hbm2ddl.keywords">none</property> </session-factory> </hibernate-configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <qualifyAssembly partialName="MySql.Data" fullName="MySql.Data, Version=5.1.7.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" /> </assemblyBinding> </runtime> </configuration>_C#_.net_Xml_Linq_Nhibernate - Fatal编程技术网

使用c#linq修改NHibernate配置文件 让我们考虑下面的Web.CONFIG文件 <?xml version="1.0"?> <configuration> <configSections> <section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate"/> </configSections> <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"> <session-factory> <property name='proxyfactory.factory_class'>NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle </property> <property name="connection.provider"> NHibernate.Connection.DriverConnectionProvider </property> <property name="connection.connection_string"> Server=myServerAddress;Port=1234;Database=myDataBase;Uid=myUsername;Pwd=myPassword; </property> <property name="dialect"> NHibernate.Dialect.MySQLDialect </property> <property name="show_sql"> false </property> <property name="hbm2ddl.keywords">none</property> </session-factory> </hibernate-configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <qualifyAssembly partialName="MySql.Data" fullName="MySql.Data, Version=5.1.7.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" /> </assemblyBinding> </runtime> </configuration>

使用c#linq修改NHibernate配置文件 让我们考虑下面的Web.CONFIG文件 <?xml version="1.0"?> <configuration> <configSections> <section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate"/> </configSections> <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"> <session-factory> <property name='proxyfactory.factory_class'>NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle </property> <property name="connection.provider"> NHibernate.Connection.DriverConnectionProvider </property> <property name="connection.connection_string"> Server=myServerAddress;Port=1234;Database=myDataBase;Uid=myUsername;Pwd=myPassword; </property> <property name="dialect"> NHibernate.Dialect.MySQLDialect </property> <property name="show_sql"> false </property> <property name="hbm2ddl.keywords">none</property> </session-factory> </hibernate-configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <qualifyAssembly partialName="MySql.Data" fullName="MySql.Data, Version=5.1.7.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" /> </assemblyBinding> </runtime> </configuration>,c#,.net,xml,linq,nhibernate,C#,.net,Xml,Linq,Nhibernate,但是,当我查看文档时,xdoc中的视图如下所示: //<property name="connection.provider" xmlns="urn:nhibernate-configuration-2.2"> // 如何解决此问题?问题是什么?xdoc结果就是我所期望的……我们可以通过这个查询XNamespace ns=doc.Root.Name.namespace获得名称空间值吗var ns=xDoc.subjects().First(x=>x.Name.LocalName=

但是,当我查看文档时,xdoc中的视图如下所示:

//<property name="connection.provider" xmlns="urn:nhibernate-configuration-2.2">
//

如何解决此问题?

问题是什么?xdoc结果就是我所期望的……我们可以通过这个查询XNamespace ns=doc.Root.Name.namespace获得名称空间值吗
var ns=xDoc.subjects().First(x=>x.Name.LocalName==“hibernate配置”).Name.Namespace
XNamespace ns = "urn:nhibernate-configuration-2.2";
var xDoc = XDocument.Load(....);
var prop = xDoc.Descendants(ns+"property")
               .First(p=>p.Attribute("name").Value=="connection.provider");

prop.Value = "Sample.DriverConnectionProvider";
 XDocument doc = XDocument.Load("path to webconfig");

 var xElems = from x in doc.Descendants()
            where x.Name.LocalName == "property name=\"connection.provider\""
                  select x;

                foreach (var xElem in xElems)
                {
                    Console.WriteLine(xElem.Attribute("name"));
                }
//<property name="connection.provider" xmlns="urn:nhibernate-configuration-2.2">
XNamespace ns = "urn:nhibernate-configuration-2.2";
var xDoc = XDocument.Load(....);
var prop = xDoc.Descendants(ns+"property")
               .First(p=>p.Attribute("name").Value=="connection.provider");

prop.Value = "Sample.DriverConnectionProvider";