ریختن حاصل یه کوئری linq در یه فایل xml
سلام به همه دوستان .
من میخوام حاصل یه کوئری linq مانند کوئری زیر رو بریزم تو یه فایل xml (با حاصلش یه فایل xml تولید کنم ) .
var result = from p in context.ProductGroup
where p.groupID > 3
select p;
دوستان اگه روشی سراغ دارند که توش مجبور نباشیم خودمون اطلاعات رو دونه دونه از حاصل کوئری بخونیم و در فایل xml بریزیم ممنون میشم مطرح کنند :لبخندساده:
نقل قول: ریختن حاصل یه کوئری linq در یه فایل xml
XDocument doc = new XDocument(new XElement("configuration", query));
doc.Save(file);
نقل قول: ریختن حاصل یه کوئری linq در یه فایل xml
نقل قول:
XDocument doc = new XDocument(new XElement("configuration", query));
doc.Save(file);
ممنون دوست عزیز .
اما این روشی که شما گفتید مشخصات کوئری رو در فایل می ریزه نه اطلاعات موجود توی اون رو . به عنوان مثال به جای نام کالا و اطلاعات اون ، نام کلاس و nameSpace اون رو در فایل می ریزه ( مثلا nameSpace.className ) .
دوستان اگه روشی برای ریختن اطلاعات حاصل کوئری در فایل xml دارند خوشحال میشم مطرح کنند :تشویق:
نقل قول: ریختن حاصل یه کوئری linq در یه فایل xml
با سلام
یک نمونه کد کامل داشتم چون خودم قبلا ازش استفاده می کردم ولی واسه بهتر شدن کار یک تغییراتی داخلش دادم و داده هارو مستقم وارد کردم و از DB نخوندم که مثال قشنگ مشخص باشه داره چیکار میکنه.
public class User
{
public string Name { get; set; }
public string Family { get; set; }
}
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
using (var folderBrowserDialog = new FolderBrowserDialog())
{
if (folderBrowserDialog.ShowDialog() != DialogResult.OK) return;
var users = new List<User>
{
new User {Name = "Mojtaba", Family = "Dinarvand"},
new User {Name = "reza", Family = "saiedi"},
new User {Name = "milad", Family = "kiani"},
new User {Name = "farhad", Family = "ehsani"},
};
var xmlDoc = new XElement("Users",
from c in users
select new XElement("User",
new XElement("Family", c.Family),
new XElement("Name", c.Name)));
xmlDoc.Save(folderBrowserDialog.SelectedPath + "/Users.xml");
}
}
}
ولی با این حال یک توضیح میدم : ببینید در کار با فایل xml ما با XElement سرو کار دایم تا به صورت درختی اطلاعات رو وارد و خارج بکنیم. توجه کنید همین حالت درختی بودن زمان Load شدن داده ها هم کار رو برای ما خیلی راحت میکنه. همونطور که میبینید XElement اول فرضا نام موجودیت رو برای ما مشخص کرده XElement دوم نام رکورد هارو و XElement های بعدی دادههای مارو یا به عبارتی ستون مارو مشخص کردن.
در خروجی فوق ما محتوای زیر رو خواهیم داشت :
<?xml version="1.0" encoding="utf-8" ?>
- <Users>
- <User>
<Family>Dinarvand</Family>
<Name>Mojtaba</Name>
</User>
- <User>
<Family>saiedi</Family>
<Name>reza</Name>
</User>
- <User>
<Family>kiani</Family>
<Name>milad</Name>
</User>
- <User>
<Family>ehsani</Family>
<Name>farhad</Name>
</User>
</Users>
موفق باشید
نقل قول: ریختن حاصل یه کوئری linq در یه فایل xml
برای ریختن خروجی یک کوئری در فایل XML باید از متد CopyToDataTable استفاده کرده و سپس متد WrtieXML را فراخوانی کنید:
http://www.farsimsdn.somee.com/Default.aspx?id=129