IT-Passports.comのIT専門家たちは受験生の皆さんのニーズを満たすように彼らの豊富な知識と経験を活かして試験トレーニング資料の品質をずっと高めています。受験生の皆さんが一回でMicrosoftの070-516試験に合格することを保証します。IT-Passports.comの製品を購入したら、あなたはいつでも最新かつ最正確な試験情報を得ることができます。IT-Passports.comの資料のカバー率が高くて、受験生に便宜を与えられます。それに、問題集の合格率が100パーセントに達するのですから、あなたは安心に試験を受けることができます。
IT-Passports.comのIT認証試験問題集は長年のトレーニング経験を持っています。IT-Passports.com Microsoftの070-516試験トレーニング資料は信頼できる製品です。当社のスタッフ は受験生の皆様が試験で高い点数を取ることを保証できるように、巨大な努力をして皆様に最新版の070-516試験トレーニング資料を提供しています。IT-Passports.com Microsoftの070-516試験材料は最も実用的なIT認定材料を提供することを確認することができます。
試験番号:070-516問題集
試験科目:Microsoft 「TS: Accessing Data with Microsoft .NET Framework 4」
問題と解答:全196問
「成功っていうのはどちらですか。」このように質問した人がいます。私は答えてあげますよ。IT-Passports.comを選んだら成功を選ぶということです。IT-Passports.comのMicrosoftの070-516試験トレーニング資料はIT認証試験を受ける全ての受験生が試験に合格することを助けるものです。この資料はMicrosoftの070-516試験のために特別に研究されたもので、受験生からの良い評価をたくさんもらいました。IT-Passports.comのMicrosoftの070-516試験トレーニング資料を選んだらぜひ成功するということを証明しました。
現在、IT業界での激しい競争に直面しているあなたは、無力に感じるでしょう。これは避けられないことですから、あなたがしなければならないことは、自分のキャリアを護衛するのです。色々な選択がありますが、IT-Passports.comのMicrosoftの070-516問題集と解答をお勧めします。それはあなたが成功認定を助ける良いヘルパーですから、あなたはまだ何を待っているのですか。速く最新のIT-Passports.comのMicrosoftの070-516トレーニング資料を取りに行きましょう。
ITテストと認定は当面の競争が激しい世界でこれまで以上に重要になりました。それは異なる世界の未来を意味しています。Microsoftの070-516の試験はあなたの職場生涯で重要な画期的な出来事になり、新しいチャンスを発見するかもしれません。ところが、Microsoftの070-516の試験にどうやって合格しますか。心配することはないですよ、ヘルプがあなたの手元にありますから。IT-Passports.comを利用したら恐いことはないです。IT-Passports.comのMicrosoftの070-516の試験問題と解答は試験準備のパイオニアですから。
IT-Passports.comのMicrosoftの070-516試験トレーニング資料はPDFぼ形式とソフトウェアの形式で提供して、IT-Passports.comのMicrosoftの070-516試験問題と解答に含まれています。070-516認定試験の真実の問題に会うかもしれません。そんな問題はパーフェクトと称するに足って、効果的な方法がありますから、どちらのMicrosoftの070-516試験に成功を取ることができます。IT-Passports.comのMicrosoftの070-516問題集は総合的にすべてのシラバスと複雑な問題をカバーしています。IT-Passports.comのMicrosoftの070-516テストの問題と解答は本物の試験の挑戦で、あなたのいつもの考え方を変換しなければなりません。
購入前にお試し,私たちの試験の質問と回答のいずれかの無料サンプルをダウンロード:http://www.it-passports.com/070-516.html
NO.1 You use Microsoft Visual Studio 2010 and Microsoft .NET Framework 4.0 to create an application.
The application connects to a Microsoft SQL Server database. You create a DataSet object in the
application.
You add two DataTable objects named App_Products and App_Categories to the DataSet.
You add the following code segment to populate the DataSet object.
(Line numbers are included for reference only.)
01 public void Fill(SqlConnection cnx, DataSet ds)
02 {
03 var cmd = cnx.CreateCommand();
04 cmd.CommandText = "SELECT * FROM dbo.Products; " + "SELECT * FROM dbo.Categories";
05 var adapter = new SqlDataAdapter(cmd);
06 ...
07 }
You need to ensure that App_Products and App_Categories are populated from the dbo.Products and
dbo.Categories database tables.
Which code segment should you insert at line 06?
A. adapter.Fill(ds, "Products");
adapter.Fill(ds, "Categories");
B. adapter.Fill(ds.Tables["App_Products"]);
adapter.Fill(ds.Tables["App_Categories"]);
C. adapter.TableMappings.Add("Table", "App_Products");
adapter.TableMappings.Add("Table1", "App_Categories");
adapter.Fill(ds);
D. adapter.TableMappings.Add("Products", "App_Products");
adapter.TableMappings.Add("Categories", "App_Categories");
adapter.Fill(ds);
Answer: D
Microsoft 070-516認定資格 070-516参考書 070-516
NO.2 You use Microsoft Visual Studio 2010 and Microsoft .NET Framework 4.0 to create a Windows
Communication
Foundation (WCF) Data Services service. You deploy the data service to the following URL:
http://contoso.com/Northwind.svc.
You add the following code segment. (Line numbers are included for reference only.)
01 var uri = new Uri(@"http://contoso.com/Northwind.svc/");
02 var ctx = new NorthwindEntities(uri);
03 var categories = from c in ctx.Categories select c;
04 foreach (var category in categories) {
05 PrintCategory(category);
06 ...
07 foreach (var product in category.Products) {
08 ...
09 PrintProduct(product);
10 }
NO.3 You use Microsoft Visual Studio 2010 and Microsoft .NET Framework 4.0 to create a Windows Forms
application.
You plan to deploy the application to several shared client computers. You write the following code
segment.
(Line numbers are included for reference only.)
01 Configuration config = ConfigurationManager.OpenExeConfiguration(exeConfigName);
02 ...
03 config.Save();
04 ...
You need to encrypt the connection string stored in the .config file.
Which code segment should you insert at line 02.?
A. ConnectionStringsSection section = config.GetSection("connectionString") as
ConnectionStringsSection;
section.SectionInformation.ProtectSection("DataProtectionConfigurationProvider");
B. ConnectionStringsSection section = config.GetSection("connectionStrings") as
ConnectionStringsSection;
section.SectionInformation.ProtectSection("DataProtectionConfigurationProvider");
C. ConnectionStringsSection section = config.GetSection("connectionString") as
ConnectionStringsSection;
section.SectionInformation.ProtectSection("RsaProtectedConfigurationProvider");
D. ConnectionStringsSection section = config.GetSection("connectionStrings") as
ConnectionStringsSection;
section.SectionInformation.ProtectSection("RsaProtectedConfigurationProvider");
Answer: D
Microsoft 070-516 070-516 070-516問題集
NO.4 You use Microsoft Visual Studio 2010 and Microsoft .NET Framework 4.0 to create an application.
The application uses the ADO.NET Entity Framework to model entities.
You define a Category class by writing the following code segment. (Line numbers are included for
reference only.)
01 public class Category
02 {
03 public int CategoryID { get; set; }
04 public string CategoryName { get; set; }
05 public string Description { get; set; }
06 public byte[] Picture { get; set; }
07 ...
08 }
You need to add a collection named Products to the Category class. You also need to ensure that the
collection supports deferred loading.
Which code segment should you insert at line 07?
A. public static List <Product> Products { get; set; }
B. public virtual List <Product> Products { get; set; }
C. public abstract List <Product> Products { get; set; }
D. protected List <Product> Products { get; set; }
Answer: B
Microsoft参考書 070-516認証試験 070-516 070-516
NO.5 You use Microsoft Visual Studio 2010 and Microsoft .NET Framework 4.0 to create an application.
The application connects to a Microsoft SQL Server database.
The application uses a DataTable named OrderDetailTable that has the following columns:
ID
OrderID
ProductID
Quantity
LineTotal
Some records contain a null value in the LineTotal field and 0 in the Quantity field.
You write the following code segment. (Line numbers are included for reference only.)
01 DataColumn column = new DataColumn("UnitPrice", typeof(double));
02 ...
03 OrderDetailTable.Columns.Add(column);
You need to add a calculated DataColumn named UnitPrice to the OrderDetailTable object.
You also need to ensure that UnitPrice is set to 0 when it cannot be calculated.
Which code segment should you insert at line 02?
A. column.Expression = "LineTotal/Quantity";
B. column.Expression = "LineTotal/ISNULL(Quantity, 1)";
C. column.Expression = "if(Quantity > 0, LineTotal/Quantity, 0)";
D. column.Expression = "iif(Quantity > 0, LineTotal/Quantity, 0)";
Answer: D
Microsoft認証試験 070-516問題集 070-516 070-516認定試験
NO.6 You use Microsoft Visual Studio 2010 and Microsoft .NET Framework 4.0 to create an application.
The application connects to a Microsoft SQL Server database.
The application uses the ADO.NET LINQ to SQL model to retrieve data from the database.
The application will not modify retrieved data. You need to ensure that all the requested data is retrieved.
You want to achieve this goal using the minimum amount of resources. What should you do?
A. Set ObjectTrackingEnabled to true on the DataContext class.
B. Set ObjectTrackingEnabled to false on the DataContext class.
C. Set DeferredLoadingEnabled to true on the DataContext class.
D. Set DeferredLoadingEnabled to false on the DataContext class.
Answer: B
Microsoft 070-516参考書 070-516 070-516
NO.7 You use Microsoft Visual Studio 2010 and Microsoft .NET Framework 4.0 to create an application.
The application connects to a Microsoft SQL Server database. The application uses the ADO.NET Entity
Framework to model entities.
The database includes objects based on the exhibit.
The application includes the following code segment. (Line numbers are included for reference only.)
01 using (AdventureWorksEntities context = new AdventureWorksEntities()){
02 ...
03 foreach (SalesOrderHeader order in customer.SalesOrderHeader){
04 Console.WriteLine(String.Format("Order: {0} ", order.SalesOrderNumber));
05 foreach (SalesOrderDetail item in order.SalesOrderDetail){
06 Console.WriteLine(String.Format("Quantity: {0} ", item.Quantity));
07 Console.WriteLine(String.Format("Product: {0} ", item.Product.Name));
08 }
09 }
10 }
You want to list all the orders for a specified customer. You need to ensure that the list contains the
following fields:
Order number
Quantity of products
Product name
Which code segment should you insert at line 02?
A. Contact customer = context.Contact.Where("it.ContactID = @customerId", new
ObjectParameter("@customerId", customerId)).First();
B. Contact customer = context.Contact.Where("it.ContactID = @customerId", new
ObjectParameter("customerId", customerId)).First();
C. context.ContextOptions.LazyLoadingEnabled = true;
Contact customer = (from contact in context.Contact
include("SalesOrderHeader.SalesOrderDetail")
select conatct).FirstOrDefault();
D. Contact customer = (from contact in context.Contact
include("SalesOrderHeader")
select conatct).FirstOrDefault();
Answer: B
Microsoft 070-516認定試験 070-516 070-516
NO.8 You use Microsoft Visual Studio 2010 and Microsoft .NET Framework 4.0 to create an application.
The application uses the ADO.NET Entity Framework to model entities.
The application allows users to make changes while disconnected from the data store.
Changes are submitted to the data store by using the SubmitChanges method of the DataContext object.
You receive an exception when you call the SubmitChanges method to submit entities that a user has
changed in offline mode.
You need to ensure that entities changed in offline mode can be successfully updated in the data store.
What should you do?
A. Set the ObjectTrackingEnabled property of DataContext to true.
B. Set the DeferredLoadingEnabled property of DataContext to true.
C. Call the SaveChanges method of DataContext with a value of false.
D. Call the SubmitChanges method of DataContext with a value of
System.Data.Linq.ConflictMode.ContinueOnConflict.
Answer: A
Microsoft 070-516 070-516問題集 070-516
NO.9 You use Microsoft Visual Studio 2010 and Microsoft .NET Framework 4.0 to create an application.
You use the ADO.NET Entity Framework to model entities. You write the following code segment. (Line
numbers are included for reference only.)
01 public partial class SalesOrderDetail : EntityObject
02 {
03 partial void OnOrderQtyChanging(short value)
04 {
05 ...
06 {
07 ...
08 }
09 }
10 }
You need to find out whether the object has a valid ObjectStateEntry instance. Which code segment
should you insert at line 05?
A. if (this.EntityState != EntityState.Detached)
B. if (this.EntityState != EntityState.Unchanged)
C. if (this.EntityState != EntityState.Modified)
D. if (this.EntityState != EntityState.Added)
Answer: D
Microsoft認定試験 070-516参考書 070-516 070-516 070-516
NO.10 You use Microsoft Visual Studio 2010 and Microsoft .NET Framework 4.0 to create an application.
The application connects to a Microsoft SQL Server database.
The application has two DataTable objects that reference the Customers and Orders tables in the
database.
The application contains the following code segment. (Line numbers are included for reference only.)
01 DataSet customerOrders = new DataSet();
02 customerOrders.EnforceConstraints = true;
03 ForeignKeyConstraint ordersFK = new ForeignKeyConstraint("ordersFK",
04
customerOrders.Tables["Customers"].Columns["CustomerID"],
05 customerOrders.Tables["Orders"].Columns["CustomerID"]);
06 ...
07 customerOrders.Tables["Orders"].Constraints.Add(ordersFK);
You need to ensure that an exception is thrown when you attempt to delete Customer records that have
related Order records.
Which code segment should you insert at line 06?
A. ordersFK.DeleteRule = Rule.SetDefault;
B. ordersFK.DeleteRule = Rule.None;
C. ordersFK.DeleteRule = Rule.SetNull;
D. ordersFK.DeleteRule = Rule.Cascade;
Answer: B
Microsoft 070-516 070-516 070-516認定資格
NO.11 You use Microsoft Visual Studio 2010 and Microsoft .NET Framework 4.0 to create an application.
You use the ADO.NET Entity Data Model (EDM) to define a Customer entity.
You need to add a new Customer to the data store without setting all the customer's properties. What
should you do?
A. Call the Create method of the Customer object.
B. Call the CreateObject method of the Customer object.
C. Override the Create method for the Customer object.
D. Override the SaveChanges method for the Customer object.
Answer: B
Microsoft 070-516過去問 070-516過去問 070-516 070-516認定資格
NO.12 You use Microsoft Visual Studio 2010, Microsoft Sync Framework, and Microsoft .NET Framework 4.0
to create an application.
You have a ServerSyncProvider connected to a Microsoft SQL Server database. The database is hosted
on a Web server.
Users will use the Internet to access the Customer database through the ServerSyncProvider.
You write the following code segment. (Line numbers are included for reference only.)
01 SyncTable customerSyncTable = new SyncTable("Customer");
02 customerSyncTable.CreationOption = TableCreationOption.UploadExistingOrCreateNewTable;
03 ...
04 customerSyncTable.SyncGroup = customerSyncGroup;
05 this.Configuration.SyncTables.Add(customerSyncTable);
You need to ensure that the application meets the following requirements:
Users can modify data locally and receive changes from the server.
Only changed rows are transferred during synchronization.
Which code segment should you insert at line 03?
A. customerSyncTable.SyncDirection = SyncDirection.DownloadOnly;
B. customerSyncTable.SyncDirection = SyncDirection.Snapshot;
C. customerSyncTable.SyncDirection = SyncDirection.Bidirectional;
D. customerSyncTable.SyncDirection = SyncDirection.UploadOnly;
Answer: C
Microsoft 070-516 070-516練習問題 070-516参考書
NO.13 You use Microsoft Visual Studio 2010 and Microsoft .NET Framework 4.0 to create a Windows
Communication Foundation (WCF) Data Services service.
The service connects to a Microsoft SQL Server 2008 database. The service is hosted by an Internet
Information Services (IIS) 6.0 Web server.
The application works correctly in the development environment. However, when you connect to the
service on
the production server, attempting to update or delete an entity results in an error.
You need to ensure that you can update and delete entities on the production server. What should you
do?
A. Add the following line of code to the InitializeService method of the service:
config.SetEntitySetAccessRule ("*", EntitySetRights.WriteDelete | EntitySetRights.WriteInsert);
B. Add the following line of code to the InitializeService method of the service:
config.SetEntitySetAccessRule ("*", EntitySetRights.WriteDelete | EntitySetRights.WriteMerge);
C. Configure IIS to allow the PUT and DELETE verbs for the .svc Application Extension.
D. Configure IIS to allow the POST and DELETE verbs for the .svc Application Extension.
Answer: C
Microsoft 070-516認定試験 070-516参考書 070-516認証試験
NO.14 You use Microsoft Visual Studio 2010 and Microsoft .NET Framework 4.0 to create an application.
The application connects to a Microsoft SQL Server 2008 database. The database includes a table
named dbo.Documents
that contains a column with large binary data. You are creating the Data Access Layer (DAL).
You add the following code segment to query the dbo.Documents table. (Line numbers are included for
reference only.)
01 public void LoadDocuments(DbConnection cnx)
02 {
03 var cmd = cnx.CreateCommand();
04 cmd.CommandText = "SELECT * FROM dbo.Documents";
05 ...
06 cnx.Open();
07 ...
08 ReadDocument(reader);
09 }
You need to ensure that data can be read as a stream. Which code segment should you insert at line 07?
A. var reader = cmd.ExecuteReader(CommandBehavior.Default);
B. var reader = cmd.ExecuteReader(CommandBehavior.SchemaOnly);
C. var reader = cmd.ExecuteReader(CommandBehavior.KeyInfo);
D. var reader = cmd.ExecuteReader(CommandBehavior.SequentialAccess);
Answer: D
Microsoft参考書 070-516参考書 070-516問題集 070-516
NO.15 You use Microsoft Visual Studio 2010 and Microsoft .NET Framework 4.0 to create an application.
The application connects to a Microsoft SQL Server database and contains a LINQ to SQL data model.
The data model contains a function named createCustomer that calls a stored procedure.
The stored procedure is also named createCustomer. The createCustomer function has the following
signature.
createCustomer (Guid customerID, String customerName, String address1)
The application contains the following code segment. (Line numbers are included for reference only.)
01 CustomDataContext context = new CustomDataContext();
02 Guid userID = Guid.NewGuid();
03 String address1 = "1 Main Steet";
04 String name = "Marc";
05 ...
You need to use the createCustomer stored procedure to add a customer to the database.
Which code segment should you insert at line 05?
A. context.createCustomer(userID, customer1, address1);
B. context.ExecuteCommand("createCustomer", userID, customer1, address1);
Customer customer = new Customer() { ID = userID, Address1 = address1, Name = customer1, };
C. context.ExecuteCommand("createCustomer", customer);
Customer customer = new Customer() { ID = userID, Address1 = address1, Name = customer1, };
D. context.ExecuteQuery(typeof(Customer), "createCustomer", customer);
Answer: A
Microsoft参考書 070-516 070-516 070-516認定試験 070-516
NO.16 }
You need to ensure that the Product data for each Category object is lazy-loaded. What should you do?
A. Add the following code segment at line 06:
ctx.LoadProperty(category, "Products");
B. Add the following code segment at line 08:
ctx.LoadProperty(product, "*");
C. Add the following code segment at line 06:
var strPrdUri = string.Format("Categories({0})?$expand=Products", category.CategoryID);
var productUri = new Uri(strPrdUri, UriKind.Relative);
ctx.Execute<Product>(productUri);
D. Add the following code segment at line 08:
var strprdUri= string.format("Products?$filter=CategoryID eq {0}", category.CategoryID);
var prodcutUri = new Uri(strPrd, UriKind.Relative);
ctx.Execute<Product>(productUri);
Answer: A
Microsoft練習問題 070-516参考書 070-516認定試験 070-516 070-516
11.You use Microsoft Visual Studio 2010 and Microsoft .NET Framework 4.0 to create an application.
The application connects to a Microsoft SQL Server database. You load records from the Customers table
into a DataSet object named dataset.
You need to retrieve the value of the City field from the first and last records in the Customers table.
Which code segment should you use?
A. DataTable dt = dataset.Tables["Customers"];
string first = dt.Rows[0]["City"].ToString();
string last = dt.Rows[dt.Rows.Count - 1]["City"].ToString();
B. DataTable dt = dataset.Tables["Customers"];
string first = dt.Rows[0]["City"].ToString();
string last = dt.Rows[dt.Rows.Count]["City"].ToString();
C. DataRelation relationFirst = dataset.Relations[0];
DataRelation relationLast = dataset.Relations[dataset.Relations.Count - 1];
string first = relationFirst.childTable.Columns["City"].ToString();
string last = relationLast.childTable.Columns["City"].ToString();
D. DataRelation relationFirst = dataset.Relations[0];
DataRelation relationLast = dataset.Relations[dataset.Relations.Count];
string first = relationFirst.childTable.Columns["City"].ToString();
string last = relationLast.childTable.Columns["City"].ToString();
Answer: A
Microsoft 070-516認証試験 070-516問題集 070-516
NO.17 You use Microsoft Visual Studio 2010 and Microsoft .NET Framework 4.0 to create an application.
You use the ADO.NET Entity Framework to model entities. You write the following code segment. (Line
numbers are included for reference only.)
01 AdventureWorksEntities context = new
AdventureWorksEntities("http://localhost:1234/AdventureWorks.svc");
02 ...
03 var q = from c in context.Customers
04 where c.City == "London"
05 orderby c.CompanyName
06 select c;
You need to ensure that the application meets the following requirements:
Compares the current values of unmodified properties with values returned from the data source.
Marks the property as modified when the properties are not the same.
Which code segment should you insert at line 02?
A. context.MergeOption = MergeOption.AppendOnly;
B. context.MergeOption = MergeOption.PreserveChanges;
C. context.MergeOption = MergeOption.OverwriteChanges;
D. context.MergeOption = MergeOption.NoTracking;
Answer: B
Microsoft問題集 070-516 070-516 070-516問題集
NO.18 You use Microsoft Visual Studio 2010 and Microsoft .NET Framework 4.0 to create an application.
The application connects to a Microsoft SQL Server 2008 database.
You use the ADO.NET Entity Framework to model your entities. You use ADO.NET self-tracking entities.
You need to ensure that the change-tracking information for the self-tracking entities can be used to
update the database.
Which ObjectContext method should you call after changes are made to the entities?
A. Attach
B. Refresh
C. SaveChanges
D. ApplyChanges
Answer: D
Microsoft 070-516 070-516 070-516
NO.19 You use Microsoft Visual Studio 2010 and Microsoft .NET Framework 4.0 to create an application.
The application connects to a Microsoft SQL Server database.
You use the ADO.NET Entity Framework to manage persistence-ignorant entities. You create an
ObjectContext instance named context.
Then, you directly modify properties on several entities. You need to save the modified entity values to the
database.
Which code segment should you use?
A. context.SaveChanges(SaveOptions.AcceptAllChangesAfterSave);
B. context.SaveChanges(SaveOptions.DetectChangesBeforeSave);
C. context.SaveChanges(SaveOptions.None);
D. context.SaveChanges();
Answer: B
Microsoft 070-516 070-516参考書 070-516
NO.20 You use Microsoft Visual Studio 2010 and Microsoft .NET Framework 4.0 to create an application.
The application uses the ADO.NET Entity Framework to manage Plain Old CLR Objects (POCO) entities.
You create a new POCO class. You need to ensure that the class meets the following requirements:
It can be used by an ObjectContext.
It is enabled for change-tracking proxies.
Which two actions should you perform? (Each correct answer presents part of the solution. Choose two.)
A. Modify each mapped property to contain sealed and protected accessors.
B. Modify each mapped property to contain non-sealed, public, and virtual accessors.
C. Configure the navigation property to return a type that implements the ICollection interface.
D. Configure the navigation property to return a type that implements the IQueryable interface.
E. Configure the navigation property to return a type that implements the IEntityWithRelationships
interface.
Answer: BC
Microsoft認定証 070-516 070-516認定試験 070-516参考書
IT業種のMicrosoftの070-516認定試験に合格したいのなら、IT-Passports.com Microsoftの070-516試験トレーニング問題集を選ぶのは必要なことです。Microsoftの070-516認定試験に受かったら、あなたの仕事はより良い保証を得て、将来のキャリアで、少なくともIT領域であなたの技能と知識は国際的に認知され、受け入れられるです。これも多くの人々がMicrosoftの070-516認定試験を選ぶ理由の一つです。その理由でこの試験はますます重視されるになります。IT-Passports.com Microsoftの070-516試験トレーニング資料はあなたが上記の念願を実現することを助けられるのです。IT-Passports.com Microsoftの070-516試験トレーニング資料は豊富な経験を持っているIT専門家が研究したもので、問題と解答が緊密に結んでいますから、比べるものがないです。高い価格のトレーニング授業を受けることはなくて、IT-Passports.com Microsoftの070-516試験トレーニング資料をショッピングカートに入れる限り、我々はあなたが気楽に試験に合格することを助けられます。
没有评论:
发表评论